将经过训练的 AWS SageMaker MXNet 模型部署/转换到 iOS 设备

Posted

技术标签:

【中文标题】将经过训练的 AWS SageMaker MXNet 模型部署/转换到 iOS 设备【英文标题】:Deploy/convert trained AWS SageMaker MXNet Model to iOS devices 【发布时间】:2019-12-13 18:18:13 【问题描述】:

我使用 SageMaker 对象检测算法训练了一个 MXnet SSD resnet-50 模型,并希望在 ios 设备上使用它。因此我需要将其转换为 Apple CoreML 格式。我试过mxnet-to-coreml。

也许有更好的方法来做到这一点? 有谁知道实现此任务的便捷方法?

我的模型包含两个文件:

resnet50_ssd_model-symbol.json resnet50_ssd_model-0000.params

在转换模型之前,我使用MXnet 提供的“deploy.py”将其设置为部署状态。

mxnet-to-coreml 转换器失败并出现以下错误:

raise TypeError("不支持 %s 类型的 MXNet 层。" % 层) TypeError: 不支持 _copy 类型的 MXNet 层。

我这样调用转换器脚本:

python mxnet_coreml_converter.py --model-prefix='ssd_resnet50_512' -- 
epoch=0 --input-shape='"data":"3, 512, 512"' --mode=classifier --pre- 
processing-arguments='"image_input_names":"data"' --output- 
file="resnet50.mlmodel"

【问题讨论】:

【参考方案1】:

如here 所述,从 MXNet 到 CoreML 的转换器尚不支持此层(“_copy”)(这是 MXNet 运算符)。对此有一个功能请求。

【讨论】:

以上是关于将经过训练的 AWS SageMaker MXNet 模型部署/转换到 iOS 设备的主要内容,如果未能解决你的问题,请参考以下文章

我们如何在 AWS Sagemaker 推理中添加复杂的预处理

AWS SageMaker ML DevOps 工具/架构 - Kubeflow?

如何将 AWS SageMaker 提供给组织外部的人员使用?

SageMaker - CloudFormation 中 SageMaker 实体的说明

Sagemaker 在训练期间未将 Tensorboard 日志输出到 S3

如何在等待响应时增加 AWS Sagemaker 调用超时