Torchserve 在本地运行时无法在 docker 上加载模型

Torchserve fails to load model on docker while it runs locally

我有一个 torchscript 模型 (.pt),我可以在我的本地机器上使用 torch serve 成功加载和服务。另一方面,当试图在官方 torchserve 中部署它时 docker 它会抱怨模型并且不加载它。

我的本地环境库是:

使用 Docker 我希望使用 pytorch/torchserve:latest-cpu 来整理所有版本(我不安装特定版本)。

我想知道这是最新图像的一些错误还是我这边的一些不当行为(以及如何修复)。我将在下面提供有关环境和如何重现的更多详细信息。

我在我的存储库中创建了一个可重现的示例,https://github.com/jiwidi/torchservebug。克隆它以像这样重现它:

运行本地

从根文件夹运行

$ sh test.sh

这 运行 成功了。

运行 与 docker

从根文件夹运行

$ docker build . -t debug:v1

$ docker run debug:v1

这不是 运行,torchserve 无法加载模型并输出 java 错误以及一些手电筒错误。

来自 docker 的完整失败日志可以在这个 github 问题 https://github.com/pytorch/serve/issues/1402

中找到

首先要知道的是 docker 标签只是标签。仅仅因为它被标记为“最新”并不意味着什么。事实上你会看到版本 0.5.2-cpulatest-cpu here on dockerhub

更新

使用这个至少可以摆脱 java 错误。除此之外,您应该知道 EXPOSE 作为 docker 文件中的命令是令人困惑的:它除了作为文档之外什么都不做。因此,如果您需要在 运行 容器时访问这些端口,则必须使用 -p 标志发布端口:

docker run -p 8080:8080 -p 8081:8081 debug:v1

希望对您有所帮助。