Torchserve docker模型部署超详篇

1.模型打包

torch-model-archiver --model-name roadcross --version 1.0 --model-file model.py --serialized-file resnet34b_16.pth --handler resnetHandler --export-path model-store -f

参数说明:

--model-name 模型名称,根据自己需要定义,不需要跟真正的模型名称相同

--version 模型版本

--model-file 模型类文件,里面只能有一个类

--serialized-file 模型参数文件

--handler 模型处理文件,非常重要

--extra-files json文件,可以讲类别对于的名称放进去

--export-path 导出的.mar文件存放的位置,需要手动创建

实际上我在加载模型的时候,用的是torchscript格式文件,没有用到model.py,为什么还是要加这个参数呢,因为不知道为什么,如果不加该参数,会提示找不到模型。

我的文件结构如下:

Torchserve docker模型部署超详篇_第1张图片

执行完成后会在model-store下生成文件:

2.拉取镜像

torchserve docker镜像列表

 https://hub.docker.com/r/pytorch/torchserve/tags?page=1&ordering=last_updated

拉取CPU镜像

docker pull pytorch/torchserve:latest

3.重新打包镜像

因为基础镜像中没有安装opencv-pyhton包,所以需要在原镜像的基础上,打包镜像

在一个空文件夹中,创建Dockerfile文件

在文件中写入

FROM pytorch/torchserve:latest

RUN pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

然后在文件夹下执行打包命令

sudo docker build -t roadclssify:v1 .

Torchserve docker模型部署超详篇_第2张图片

  4.docker运行torchserve

命令知识将torchserve服务运行起来,可以通过http请求进行控制,注册模型、管理模型、访问等等。

sudo docker run --rm -it -p 3000:8080 -p 3001:8081 -v /mnt/d/image-process/torchserver-deploy/roadcross/model-store/model_store:/home/model-server/model-store roadclassify:v1.0

参数说明:

-p 表示端口映射,主机端口3000映射到容器的8080, 3001映射到8081

-v 将本地文件夹/mnt/d/image-process/torchserver-deploy/roadcross/model-store/model_store中的模型复制到容器目录下/home/model-server/model-store

容器目录一定要写成/home/model-server/model-store,即将.mar文件放在这个文件夹下,方便模型注册等

5.注册模型

torchserve API文档

https://pytorch.org/serve/management_api.html#register-a-model

注册API: http://localhost:3001/models?url=roadcross.mar

注册模型

Torchserve docker模型部署超详篇_第3张图片

 参数说明:

发起post请求:

url为必填字段,可以为一个http链接,提交请求后,容器会自动进行下载,将模型下载到容器目录之下,然后运行。

也可以为本地模型名称,这里的本地是指容器,如果使用路径的话,需要将.mar模型文件放在/home/model-server/model-store下面

6.控制worker数量

http://localhost:3001/models/roadcross?min_worker=3

Torchserve docker模型部署超详篇_第4张图片

 7.访问服务

http://localhost:3000/predictions/roadcross

发送图像文件测试

Torchserve docker模型部署超详篇_第5张图片

 OK

你可能感兴趣的:(python,pytorch,深度学习)