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

适用于 Apache MXNet 的模型服务器 (MMS)

适用于 Apache MXNet 的模型服务器 (MMS) 是一个灵活的工具,用于处理从 Apache MXNet(孵化) 导出或导出为开放神经网络交换 (ONNX) 模型格式的深度学习模型。MMS 随 DLAMI with Conda 一起预安装。本 MMS 教程将演示如何处理图像分类模型。

在 MMS 上处理图像分类模型

本教程介绍如何利用 MMS 处理图像分类模型。该模型通过 MMS Model Zoo 提供,在您启动 MMS 时自动进行下载。在服务器开始运行后,它会立即侦听预测请求。在这种情况下,如果您上传图像 (一个小猫的图像),服务器会返回在其上训练该模型的 1,000 类中匹配的前 5 个类的预测。有关模型、模型的训练方式以及模型的测试方式的更多信息可在 MMS Model Zoo 中找到。

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

  1. 连接到 采用 Conda 的 Deep Learning AMI 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。

  2. 激活 MXNet 环境:

    • 对于使用 CUDA 9.0 和 MKL-DNN 的 Python 3 上的 MXNet 和 Keras 2,运行以下命令:

      $ source activate mxnet_p36
    • 对于使用 CUDA 9.0 和 MKL-DNN 的 Python 2 上的 MXNet 和 Keras 2,运行以下命令:

      $ source activate mxnet_p27
  3. 使用以下命令运行 MMS。添加 > /dev/null 将在您运行其他测试时生成无提示日志输出。

    $ mxnet-model-server --start > /dev/null

    MMS 现在正在您的主机上运行并且正在侦听推理请求。

  4. 接下来,使用 curl 命令管理 MMS 的管理终端节点,并告知它您希望它处理的模型。

    $ curl -X POST "http://localhost:8081/models?url=https%3A%2F%2Fs3.amazonaws.com%2Fmodel-server%2Fmodels%2Fsqueezenet_v1.1%2Fsqueezenet_v1.1.model"
  5. MMS 需要知道您要使用的工作线程的数量。对于此测试,您可以尝试 3。

    $ curl -v -X PUT "http://localhost:8081/models/squeezenet_v1.1?min_worker=3"
  6. 下载一个小猫图像并将其发送到 MMS 预测终端节点:

    $ curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg $ curl -X POST http://127.0.0.1:8080/predictions/squeezenet_v1.1 -T kitten.jpg

    该预测终端节点将返回一个 JSON 格式的预测 (类似于下面的前 5 个预测),其中,图像具有 94% 的可能性为埃及猫,然后有 5.5% 的可能性为猞猁或山猫:

    { "prediction": [ [{ "class": "n02124075 Egyptian cat", "probability": 0.940 }, { "class": "n02127052 lynx, catamount", "probability": 0.055 }, { "class": "n02123045 tabby, tabby cat", "probability": 0.002 }, { "class": "n02123159 tiger cat", "probability": 0.0003 }, { "class": "n02123394 Persian cat", "probability": 0.0002 } ] ] }
  7. 测试更多映像,或者如果您已完成测试,请停止服务器:

    $ mxnet-model-server --stop

本教程重点介绍基本模型处理。当您准备好了解有关其他 MMS 功能的更多信息时,请参阅 GitHub 上的 MMS 文档

其他示例

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

更多信息

有关更多 MMS 文档,包括如何使用 Docker 设置 MMS — 或要利用最新的 MMS 功能,请在 GitHub 上启动 MMS 项目页面