3

我们有一个项目基本上遵循这个 docker 示例,唯一的区别是我们创建了一个与此类似的自定义模型,其代码位于名为forecast. 我们成功地用mlflow run. 当我们尝试为模型服务时,问题就出现了。做完之后

mlflow models build-docker -m "runs:/my-run-id/my-model" -n "my-image-name"

我们无法运行容器

docker run -p 5001:8080 "my-image-name"

出现以下错误:

ModuleNotFoundError: No module named 'forecast'

似乎 docker 镜像不知道定义我们自定义模型类的源代码。code_path在Conda环境中,由于mlflow.pyfunc.log_model.

我们的 Dockerfile 非常基础,只有FROM continuumio/miniconda3:4.7.12, RUN pip install {model_dependencies}.

如何让 docker 镜像知道反序列化模型的源代码并运行它?

4

1 回答 1

0

您可以在记录模型时通过设置code_paths参数来指定源代码依赖 项。因此,在您的情况下,您可以执行以下操作:

mlflow.pyfunc.log_model(..., code_paths=[<path to your forecast.py file>])
于 2020-01-27T21:28:32.463 回答