我有一个torchscript模型(.pt
(,我可以在本地机器上成功加载并使用torch-service进行服务。另一方面,当试图将其部署在官方的torchserve docker中时,它会抱怨模型,而不会加载它。
我的本地环境库是:
- torchserve版本:0.5.2
- 火炬模型存档版本:0.5.2
- 火炬版本:1.10
- java版本:17
- 操作系统和版本:MacOS 11.4
使用pytorch/torchserve:latest-cpu
的Docker im,我希望所有版本都能解决(我不安装特定的版本(。
我想知道这是最新图像中的一些错误还是我这边的一些错误(以及如何修复(。我将在下面提供更多关于环境和如何复制的细节。
我在我的存储库中创建了一个可复制的示例,https://github.com/jiwidi/torchservebug.将其复制为这样:
在本地运行
从根文件夹运行
$ sh test.sh
此操作成功运行。
使用docker运行
从根文件夹运行
$ docker build . -t debug:v1
$ docker run debug:v1
这没有运行,torchserve无法加载模型,并输出java错误以及一些torch错误。
docker的完整故障日志可以在这个github问题中找到https://github.com/pytorch/serve/issues/1402
首先要知道的是docker标签只是标签。仅仅因为它被标记为";最新的";并不意味着什么。事实上,你会在dockerhub 上看到版本0.5.2-cpu
比latest-cpu
新
使用这个至少可以消除java错误。除此之外,您应该知道EXPOSE
作为dockerfiles中的一个命令是令人困惑的:它除了作为文档之外什么都不做。因此,如果在运行容器时需要访问这些端口,则必须发布带有-p
标志的端口:
docker run -p 8080:8080 -p 8081:8081 debug:v1
希望这对你有帮助。