Source code for labelbox.schema.model

from typing import TYPE_CHECKING
from labelbox.orm import query
from labelbox.orm.db_object import DbObject
from labelbox.orm.model import Entity, Field, Relationship

if TYPE_CHECKING:
    from labelbox import ModelRun


[docs]class Model(DbObject): """A model represents a program that has been trained and can make predictions on new data. Attributes: name (str) model_runs (Relationship): `ToMany` relationship to ModelRun """ name = Field.String("name") model_runs = Relationship.ToMany("ModelRun", False)
[docs] def create_model_run(self, name, config=None) -> "ModelRun": """ Creates a model run belonging to this model. Args: name (string): The name for the model run. config (json): Model run's training metadata config Returns: ModelRun, the created model run. """ name_param = "name" config_param = "config" model_id_param = "modelId" ModelRun = Entity.ModelRun query_str = """mutation CreateModelRunPyApi($%s: String!, $%s: Json, $%s: ID!) { createModelRun(data: {name: $%s, trainingMetadata: $%s, modelId: $%s}) {%s}}""" % ( name_param, config_param, model_id_param, name_param, config_param, model_id_param, query.results_query_part(ModelRun)) res = self.client.execute(query_str, { name_param: name, config_param: config, model_id_param: self.uid }) return ModelRun(self.client, res["createModelRun"])
[docs] def delete(self) -> None: """ Deletes specified model. Returns: Query execution success. """ ids_param = "ids" query_str = """mutation DeleteModelPyApi($%s: ID!) { deleteModels(where: {ids: [$%s]})}""" % (ids_param, ids_param) self.client.execute(query_str, {ids_param: str(self.uid)})