本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
TorchServe
TorchServe 是一个灵活的工具,用于处理已从 PyTorch 导出的深度学习模型。TorchServe 从 v34 开始预先安装有 采用 Conda 的 Deep Learning AMI。
有关使用 TorchServe 的更多信息,请参阅适用于 PyTorch 的模型服务器
主题
在 TorchServe 上处理图像分类模型
本教程介绍如何使用 TorchServe 处理图像分类模型。 它使用 DenseNet 提供的 PyTorch-161 模型。一旦服务器运行,它会侦听预测请求。上传图像时(在这种情况下为小猫的图像),服务器将返回模型训练时所在的类中的前 5 个匹配类的预测。
在 TorchServe 上处理示例图像分类模型
-
使用 Amazon Elastic Compute Cloud v34 或更高版本连接到 Amazon EC2 (采用 Conda 的 Deep Learning AMI) 实例。
-
激活
pytorch_latest_p36
环境。source activate pytorch_latest_p36
-
克隆 TorchServe 存储库,然后创建一个目录以存储您的模型。
git clone https://github.com/pytorch/serve.git mkdir model_store
-
使用模型存档器存档模型。参数使用
extra-files
存储库中的文件,因此,请根据需要更新路径。有关模型存档程序的更多信息,请参阅TorchServe
的 Torch 模型存档程序。TorchServewget https://download.pytorch.org/models/densenet161-8d451a50.pth torch-model-archiver --model-name densenet161 --version 1.0 --model-file ./serve/examples/image_classifier/densenet_161/model.py --serialized-file densenet161-8d451a50.pth --export-path model_store --extra-files ./serve/examples/image_classifier/index_to_name.json --handler image_classifier
-
运行 TorchServe 以启动终端节点。添加
> /dev/null
会关闭日志输出。torchserve --start --ncs --model-store model_store --models densenet161.mar > /dev/null
-
下载一个小猫图像并将其发送到 TorchServe 预测终端节点:
curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg curl http://127.0.0.1:8080/predictions/densenet161 -T kitten.jpg
预测终端节点返回一个 JSON 格式的预测(类似于下面的前 5 个预测),其中,图像有一个包含一个芬兰猫的
{ "tiger_cat": 0.46933576464653015, "tabby": 0.463387668132782, "Egyptian_cat": 0.0645613968372345, "lynx": 0.0012828196631744504, "plastic_bag": 0.00023323058849200606 }
-
完成测试后,停止服务器:
torchserve --stop
其他示例
TorchServe 具有可在 DLAMI 实例上运行的各种示例。您可以在项目存储库示例页面TorchServe上查看它们。
更多信息
有关更多 TorchServe 文档,包括如何使用 Docker 设置 TorchServe 和最新的 TorchServe 功能,请参阅 上的 TorchServe 项目页面