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

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

TorchServe

TorchServe 是一个灵活的工具,用于处理已从 PyTorch 导出的深度学习模型。TorchServe 从 v34 开始预先安装有 采用 Conda 的 Deep Learning AMI。

有关使用 TorchServe 的更多信息,请参阅适用于 PyTorch 的模型服务器

主题

在 TorchServe 上处理图像分类模型

本教程介绍如何使用 TorchServe 处理图像分类模型。 它使用 DenseNet 提供的 PyTorch-161 模型。一旦服务器运行,它会侦听预测请求。上传图像时(在这种情况下为小猫的图像),服务器将返回模型训练时所在的类中的前 5 个匹配类的预测。

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

  1. 使用 Amazon Elastic Compute Cloud v34 或更高版本连接到 Amazon EC2 (采用 Conda 的 Deep Learning AMI) 实例。

  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 的 Torch 模型存档程序。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. 运行 TorchServe 以启动终端节点。添加> /dev/null 会关闭日志输出。

    torchserve --start --ncs --model-store model_store --models densenet161.mar > /dev/null
  6. 下载一个小猫图像并将其发送到 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 }
  7. 完成测试后,停止服务器:

    torchserve --stop

其他示例

TorchServe 具有可在 DLAMI 实例上运行的各种示例。您可以在项目存储库示例页面TorchServe上查看它们。

更多信息

有关更多 TorchServe 文档,包括如何使用 Docker 设置 TorchServe 和最新的 TorchServe 功能,请参阅 上的 TorchServe 项目页面。GitHub