• 有关将 Apache MXNet 转换为 ONNX,然后加载到 CNTK 的教程


    https://docs.aws.amazon.com/zh_cn/dlami/latest/devguide/tutorial-onnx-mxnet-cntk.html

    import numpy as np
    import mxnet as mx
    from mxnet.contrib import onnx as onnx_mxnet
    converted_onnx_filename='vgg16.onnx'
    
    # Export MXNet model to ONNX format via MXNet's export_model API
    converted_onnx_filename=onnx_mxnet.export_model('vgg16-symbol.json', 'vgg16-0000.params', [(1,3,224,224)], np.float32, converted_onnx_filename)
    
    # Check that the newly created model is valid and meets ONNX specification.
    import onnx
    model_proto = onnx.load(converted_onnx_filename)
    onnx.checker.check_model(model_proto)
    ONNX 概述
    开放神经网络交换 (ONNX) 是一种用于表示深度学习模型的开放格式。ONNX 受到 Amazon Web Services、Microsoft、Facebook 和其他多个合作伙伴的支持。您可以使用任何选定的框架来设计、训练和部署深度学习模型。ONNX 模型的好处是,它们可以在框架之间轻松移动。
    
    本教程介绍如何将 采用 Conda 的 Deep Learning AMI 与 ONNX 结合使用。通过执行以下步骤,您可以训练模型或从一个框架中加载预先训练的模型,将此模型导出为 ONNX,然后将此模型导入到另一个框架中。
    
    ONNX 先决条件
    要使用此 ONNX 教程,您必须有权访问 采用 Conda 的 Deep Learning AMI 版本 12 或更高版本。有关如何开始使用 采用 Conda 的 Deep Learning AMI 的更多信息,请参阅 采用 Conda 的 Deep Learning AMI。
    
    重要
    这些示例使用可能需要多达 8 GB 内存(或更多)的函数。请务必选择具有足量内存的实例类型。
    
    使用 采用 Conda 的 Deep Learning AMI 启动终端会话以开始以下教程。
    
    将 Apache MXNet(孵化)模型转换为 ONNX,然后将模型加载到 CNTK 中
    如何从 Apache MXNet(孵化)中导出模型
    
    您可以将最新的 MXNet 工作版本安装到您的 采用 Conda 的 Deep Learning AMI 上的任一或两个 MXNet Conda 环境。
    
    (适用于 Python 3 的选项)- 激活 Python 3 MXNet 环境:
    
    $ source activate mxnet_p36
    (适用于 Python 2 的选项)- 激活 Python 2 MXNet 环境:
    
    $ source activate mxnet_p27
    其余步骤假定您使用的是 mxnet_p36 环境。
    
    下载模型文件。
    
    curl -O https://s3.amazonaws.com/onnx-mxnet/model-zoo/vgg16/vgg16-symbol.json
    curl -O https://s3.amazonaws.com/onnx-mxnet/model-zoo/vgg16/vgg16-0000.params
    要将模型文件从 MXNet 导出为 ONNX 格式,使用文本编辑器创建一个新文件,并在脚本中使用以下程序。
    
    import numpy as np
    import mxnet as mx
    from mxnet.contrib import onnx as onnx_mxnet
    converted_onnx_filename='vgg16.onnx'
    
    # Export MXNet model to ONNX format via MXNet's export_model API
    converted_onnx_filename=onnx_mxnet.export_model('vgg16-symbol.json', 'vgg16-0000.params', [(1,3,224,224)], np.float32, converted_onnx_filename)
    
    # Check that the newly created model is valid and meets ONNX specification.
    import onnx
    model_proto = onnx.load(converted_onnx_filename)
    onnx.checker.check_model(model_proto)
    您可能会看到一些警告消息,不过您目前可以安全地忽略它们。在您运行此脚本后,您将在同一目录中看到新创建的 .onnx 文件。
    
    现在您有一个 ONNX 文件,可以将其与以下示例结合使用来尝试运行推理:
    
    在推理中将 CNTK 与 ONNX 模型配合使用
  • 相关阅读:
    关于集合中的实现细节
    数组与内存控制笔记
    python进阶------进程线程(五)
    python进阶------进程线程(四)
    python进阶------进程线程(三)
    python进阶-------进程线程(二)
    python进阶------进程线程(一)
    python进阶---Python中的socket编程
    Python基础---python中的异常处理
    Python进阶---面向对象第三弹(进阶篇)
  • 原文地址:https://www.cnblogs.com/cloudrivers/p/12153898.html
Copyright © 2020-2023  润新知