TorchServe - 深度学习 AMI
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

TorchServe

TorchServe 是一个灵活的工具,用于处理从 PyTorch 导出的深度学习模型。火炬服务预安装了与 Conda 的深度学习 AMI,从 v34 开始。

有关使用 TorchServices 的更多信息,请参阅PyTorch 文档的模型服务器

主题

在 TorchStart 上处理图像分类模型

本教程介绍如何利用 TorchServe 处理图像分类模型。它使用派 PyTorch 提供的密森-161 型号。 在服务器开始运行后,它会立即侦听预测请求。在这种情况下,如果您上传图像 (一个小猫的图像),服务器会返回在其上训练该模型的类中匹配的前 5 个类的预测。

在 TorchService 上处理示例图像分类模型

  1. 利用 Conda v34 或更高版本,使用深度学习 AMI Connect 到 Amazon Elastic Compute Cloud (Amazon EC2) 实例。

  2. 激活pytorch_latest_p36环境中。

    source activate pytorch_latest_p36
  3. 克隆 TorchServe 存储库,然后创建一个用于存储模型的目录。 

    git clone https://github.com/pytorch/serve.git mkdir model_store
  4. 使用模型归档器存档模型。这些区域有:extra-files参数使用TorchServe回购,所以如果需要更新路径。 有关模型归档程序的更多信息,请参阅火炬模型归档器火炬服务.

    wget 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
  5. 运行火炬服务以启动终端节点。正在添加> /dev/null将静默日志输出。

    torchserve --start --ncs --model-store model_store --models densenet161.mar > /dev/null
  6. 下载一个小猫图像并将其发送到火炬预测终端节点:

    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 个预测),其中,图像具有 47% 的可能性为埃及猫,然后有 46% 的可能性为虎斑猫。

    { "tiger_cat": 0.46933576464653015, "tabby": 0.463387668132782, "Egyptian_cat": 0.0645613968372345, "lynx": 0.0012828196631744504, "plastic_bag": 0.00023323058849200606 }
  7. 完成测试后,停止服务器:

    torchserve --stop

其他示例

TorchServe 具有可在 DLAMI 实例上运行的各种示例。您可以在火炬服务项目存储库示例页

更多信息

有关更多火炬服务文档,包括如何使用 Docker 设置火炬服务和最新的火炬服务功能,请参阅火炬服务项目页面(位于 GitHub 上)。