def test_create_model_group(airlines_dataset: Dataset): client = IndicoClient() name = f"TestCreateModelGroup-{int(time.time())}" mg: ModelGroup = client.call( CreateModelGroup( name=name, dataset_id=airlines_dataset.id, source_column_id=airlines_dataset.datacolumn_by_name("Text").id, labelset_id=airlines_dataset.labelset_by_name("Target_1").id, )) assert mg.name == name
def test_create_model_group_with_wait(indico, airlines_dataset: Dataset): client = IndicoClient() name = f"TestCreateModelGroup-{int(time.time())}" mg: ModelGroup = client.call( CreateModelGroup( name=name, dataset_id=airlines_dataset.id, source_column_id=airlines_dataset.datacolumn_by_name("Text").id, labelset_id=airlines_dataset.labelset_by_name("Target_1").id, wait=True, )) assert mg.name == name assert mg.selected_model.status == "COMPLETE"
def test_model_group_progress(indico, airlines_dataset: Dataset): client = IndicoClient() name = f"TestCreateModelGroup-{int(time.time())}" mg: ModelGroup = client.call( CreateModelGroup( name=name, dataset_id=airlines_dataset.id, source_column_id=airlines_dataset.datacolumn_by_name("Text").id, labelset_id=airlines_dataset.labelset_by_name("Target_1").id, wait=False, )) time.sleep(1) model: Model = client.call((GetTrainingModelWithProgress(id=mg.id))) assert type(model) == Model assert model.status in ["CREATING", "TRAINING", "COMPLETE"] assert type(model.training_progress) == TrainingProgress assert model.training_progress.percent_complete < 101.0
def test_object_detection(cats_dogs_image_dataset: Dataset): client = IndicoClient() name = f"TestCreateObjectDetectionMg-{int(time.time())}" model_training_options = { "max_iter": 2000, "lr": 0.1, "batch_size": 1, "filter_empty": False, "test_size": 0.2, "use_small_model": False, } mg: ModelGroup = client.call( CreateModelGroup( name=name, dataset_id=cats_dogs_image_dataset.id, source_column_id=cats_dogs_image_dataset.datacolumn_by_name( "urls").id, labelset_id=cats_dogs_image_dataset.labelset_by_name("label").id, model_training_options=model_training_options, )) assert mg.name == name
def process_response(self, response) -> Dataset: response = super().process_response(response) if "dataset" not in response or not isinstance(response["dataset"], dict): raise IndicoNotFound("Failed to find dataset") return Dataset(**response["dataset"])
def process_response(self, response) -> Dataset: response = super().process_response(response) return [ Dataset(**dataset) for dataset in response["datasetsPage"]["datasets"] ]
def process_response(self, response): return Dataset(**super().process_response(response)["addDataCsv"])
def process_response(self, response): return Dataset(**super().process_response(response)["createDataset"])