def push_model(self, model: Model, task: Task = None) -> Model: """ Pushes :py:class:`~ebonite.core.objects.Model` instance into metadata and artifact repositories :param model: :py:class:`~ebonite.core.objects.Model` instance :param task: :py:class:`~ebonite.core.objects.Task` instance to save model to. Optional if model already has task :return: same saved :py:class:`~ebonite.core.objects.Model` instance """ if model.id is not None: raise ExistingModelError(model) if task is not None: if model.task_id is not None: if model.task_id != task.id: raise ValueError('This model is already in task {}'.format( model.task_id)) else: model.task = task model = self.meta_repo.create_model( model) # save model to get model.id try: self.artifact_repo.push_artifacts(model) except: # noqa self.meta_repo.delete_model(model) raise model = self.meta_repo.save_model(model) return model
def delete_model(self, model: Model, force: bool = False): """" Deletes model from metadata and artifact repositories :param model: model to delete :param force: whether model artifacts' deletion errors should be ignored, default is false :return: Nothing """ return model.delete(force)
def push_model(self, model: Model, task: Task = None) -> Model: """ Pushes :py:class:`~ebonite.core.objects.Model` instance into metadata and artifact repositories :param model: :py:class:`~ebonite.core.objects.Model` instance :param task: :py:class:`~ebonite.core.objects.Task` instance to save model to. Optional if model already has task :return: same saved :py:class:`~ebonite.core.objects.Model` instance """ self._bind(model) return model.push(task)
def delete_model(self, model: Model, force=False): """ Deletes :py:class:`~ebonite.core.objects.Model` instance from metadata and artifact repositories :param model: model instance to delete :param force: whether model artifacts' deletion errors should be ignored, default is false """ if model.artifact is not None: try: self.artifact_repo.delete_artifact(model) except: # noqa if force: logger.warning( "Unable to delete artifacts associated with model: '%s'", model, exc_info=1) else: raise self.meta_repo.delete_model(model) model.task_id = None
def model(): model = Model.create(func, "kek", "Test Model") return model
def eval_pipeline(eval_model_saved: Model): pipeline = eval_model_saved.as_pipeline('predict1') pipeline.name = 'pipeline' return pipeline
def eval_model(float_data): return Model( 'model', EvalModelWrapper(PickleModelIO()).bind_model('None', input_data=float_data), Blobs({}))