nucleus.model_run

Model Runs are deprecated and will be removed in a future version of the python client. It is now possible to upload model predictions without a need for creating a model run

For example:

import nucleus
client = nucleus.NucleusClient(YOUR_SCALE_API_KEY)
prediction_1 = nucleus.BoxPrediction(label="label", x=0, y=0, width=10, height=10, reference_id="1", confidence=0.9, class_pdf={'label': 0.9, 'other_label': 0.1})
prediction_2 = nucleus.BoxPrediction(label="label", x=0, y=0, width=10, height=10, reference_id="2", confidence=0.2, class_pdf={'label': 0.2, 'other_label': 0.8})
model = client.create_model(name="My Model", reference_id="My-CNN", metadata={"timestamp": "121012401"})
response = dataset.upload_predictions(model, [prediction_1, prediction_2])

ModelRun

This class is deprecated and will be removed from the python client.

class nucleus.model_run.ModelRun(model_run_id, dataset_id, client)

This class is deprecated and will be removed from the python client.

Parameters:
  • model_run_id (str)

  • dataset_id (str)

commit(payload=None)

Commits the model run. Starts matching algorithm defined by payload. class_agnostic – A flag to specify if matching algorithm should be class-agnostic or not.

Default value: True

allowed_label_matches – An optional list of AllowedMatch objects to specify allowed matches

for ground truth and model predictions. If specified, ‘class_agnostic’ flag is assumed to be False

Type ‘AllowedMatch’: {

ground_truth_label: string, # A label for ground truth annotation. model_prediction_label: string, # A label for model prediction that can be matched with

# corresponding ground truth label.

}

payload: {

“class_agnostic”: boolean, “allowed_label_matches”: List[AllowedMatch],

}

Returns:

{“model_run_id”: str}

Parameters:

payload (Optional[dict])

Return type:

dict

iloc(i)

Returns Model Run Info For Dataset Item by its number. :param i: absolute number of Dataset Item for a dataset corresponding to the model run. :return: List[Union[BoxPrediction, PolygonPrediction, CuboidPrediction, SegmentationPrediction]], }

Parameters:

i (int)

info()

provides information about the Model Run: model_id – Model Id corresponding to the run name – A human-readable name of the model project. status – Status of the Model Run. metadata – An arbitrary metadata blob specified for the run. :return: {

“model_id”: str, “name”: str, “status”: str, “metadata”: Dict[str, Any],

}

Return type:

dict

loc(dataset_item_id)

Returns Model Run Info For Dataset Item by its id. :param dataset_item_id: internally controlled id for dataset item. :return: {

“annotations”: List[Box2DPrediction],

}

Parameters:

dataset_item_id (str)

predict(annotations, update=DEFAULT_ANNOTATION_UPDATE_MODE, asynchronous=False, batch_size=5000, remote_files_per_upload_request=20, local_files_per_upload_request=10)

Uploads model outputs as predictions for a model_run. Returns info about the upload.

Parameters:
  • annotations (List[Union[nucleus.prediction.BoxPrediction, nucleus.prediction.PolygonPrediction, nucleus.prediction.CuboidPrediction, nucleus.prediction.SegmentationPrediction]]) – Predictions to upload for this model run,

  • update (bool) – If True, existing predictions for the same (reference_id, annotation_id) will be overwritten. If False, existing predictions will be skipped.

  • asynchronous (bool) – Whether or not to process the upload asynchronously (and return an AsyncJob object). Default is False.

  • batch_size (int) – Number of predictions processed in each concurrent batch. Default is 5000. If you get timeouts when uploading geometric annotations, you can try lowering this batch size. This is only relevant for asynchronous=False.

  • remote_files_per_upload_request (int) – Number of remote files to upload in each request. Segmentations have either local or remote files, if you are getting timeouts while uploading segmentations with remote urls, you should lower this value from its default of 20. This is only relevant for asynchronous=False

  • local_files_per_upload_request (int) – Number of local files to upload in each request. Segmentations have either local or remote files, if you are getting timeouts while uploading segmentations with local files, you should lower this value from its default of 10. The maximum is 10. This is only relevant for asynchronous=False

Returns:

Return type:

Union[dict, nucleus.async_job.AsyncJob]

{

“model_run_id”: str, “predictions_processed”: int, “predictions_ignored”: int,

}

prediction_loc(reference_id, annotation_id)

Returns info for single Prediction by its reference id and annotation id. :param reference_id: the user specified id for the image :param annotation_id: the user specified id for the prediction, or if one was not provided, the Scale internally generated id for the prediction :return:

BoxPrediction | PolygonPrediction | CuboidPrediction

Parameters:
  • reference_id (str)

  • annotation_id (str)

refloc(reference_id)

Returns Model Run Info For Dataset Item by its reference_id. :param reference_id: reference_id of a dataset item. :return: List[Union[BoxPrediction, PolygonPrediction, CuboidPrediction, SegmentationPrediction]],

Parameters:

reference_id (str)