Пример #1
0
    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
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
    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
Пример #5
0
def model():
    model = Model.create(func, "kek", "Test Model")
    return model
Пример #6
0
def eval_pipeline(eval_model_saved: Model):
    pipeline = eval_model_saved.as_pipeline('predict1')
    pipeline.name = 'pipeline'
    return pipeline
Пример #7
0
def eval_model(float_data):
    return Model(
        'model',
        EvalModelWrapper(PickleModelIO()).bind_model('None',
                                                     input_data=float_data),
        Blobs({}))