torchserve部署模型发布到web端口

torchserve主要用于pytorch模型发布到web端访问,包含一些管理,注册工具。

参考:

https://github.com/pytorch/serve

https://github.com/pytorch/serve/tree/master/model-archiver

步骤一、模型打包成mar文件

创建环境并安装torch-model-archiver:
pip install torchserve torch-model-archiver torch-workflow-archiver

源码安装:

git clone https://github.com/pytorch/serve.git
cd serve/model-archiver
pip install .

遇到问题:torch-model-archiver 不是内部或外部命令,也不是可运行的程序

解决办法:添加环境变量,这里一定要注意将所在包应用程序的路径添加到,我这里存在一个C盘的,当时找了半天

我准备了一个alexnet.pt通过jit.trace生成:

from torchvision import models
import torch
model = models.alexnet(pretrained=True)
model.eval()
example_input = torch.rand(1, 3, 224, 224)
traced_script_module = torch.jit.trace(model, example_input)
traced_script_module.save("alexnet.pt")

打包成mar文件:

# 生成MAR打包文件
torch-model-archiver --model-name alexnet --version 1.0  --serialized-file alexnet.pt --extra-files ./serve/examples/image_classifier/index_to_name.json --handler image_classifier

步骤二、安装torchserve

有教程直接安装在操作系统上,需要java环境,而我通过docker安装的:

docker pull pytorch/torchserve

步骤三、启用torchserve

指定端口,docker run

# 启动服务 windows
docker run --rm -p 8080:8080 -p 8081:8081 -p 8082:8082 -p 7070:7070 -p 7071:7071 -v "$(torch_serve的路径)/model_store:/home/model-server/model-store" pytorch/torchserve torchserve --start --model-store model-store --models alexnet=alexnet.mar

至此就完成啦!!!,可以通过postman测试