Github

https://github.com/Microsoft/MMdnn

一个全面的,跨框架的解决方案转换,可视化和诊断深度神经网络模型。MMdnn中的“MM”代表模型管理,“dnn”是deep neural network的首字母缩写。

通常人们使用深层神经网络的步骤如下:

--------------                                               --------------
| Find model | --------------------------------------------> | Deployment |
--------------      |                                        --------------
                    |                                            ^    ^
                    |        --------------                      |    |
                    -------> | Conversion | ----------------------    |
                             --------------                           |
                                   |                                  |
                                   |           -----------            |
                                   ----------> | Retrain | ------------
                                               -----------

在MMdnn中,我们致力于帮助用户更好地处理他们的工作。

  • Find Model(找到模型)
    • 我们提供一个模型集合来帮助您找到一些流行的模型。
    • 我们提供了一个模型可视化器来更直观地显示网络架构。
  • Conversion(转换)
    • 我们实现了一个通用转换器来在框架之间转换DNN模型,这意味着您可以在一个框架上训练并在另一个框架上部署。
  • Retrain(重新训练)
    • 在转换器中,我们可以生成一些训练/推断代码片段来简化再训练/评估工作。
  • Deployment(发布)
    • 我们提供了一些方法来帮助您将模型部署到其他硬件平台。
      • 安卓
      • Serving

该项目由微软研究院(MSR)设计开发。我们也鼓励研究人员和学生利用这个项目来分析DNN模型,我们欢迎任何新的想法来扩展这个项目。

安装方法:

You can get stable version of MMdnn by

pip install mmdnn

or you can try the newest version by

pip install -U git+https://github.com/Microsoft/MMdnn.git@master

特性

Model Conversion 模型转换

在整个行业和学术界,有许多现有框架可供开发人员和研究人员设计模型,其中每个框架都有自己的网络结构定义和保存模型格式。框架之间的差异阻碍了模型的互操作。

我们提供了一个模型转换器来帮助开发人员通过中间表示格式在框架之间转换模型。

支持的框架有:

测试过的模型:

这个模型转换器在下面的框架上经过了转换测试,用的是ImageNet的模型进行相互转换的。

ModelsCaffeKerasTensorflowCNTKMXNetPyTorchCoreMLONNX
VGG 19
Inception V1
Inception V3
Inception V4o
ResNet V1×o
ResNet V2
MobileNet V1×o
MobileNet V2×o
Xceptiono×
SqueezeNet
DenseNet
NASNetxox
ResNext
voc FCN      
Yolo3      

使用方法

一句命令即可实现转换。我们看个从TensorFlow ResNet V2 152到PyTorch转换的示例。

$ mmdownload -f tensorflow -n resnet_v2_152 -o ./
$ mmconvert -sf tensorflow -in imagenet_resnet_v2_152.ckpt.meta -iw imagenet_resnet_v2_152.ckpt --dstNodeName MMdnn_Output -df pytorch -om tf_resnet_to_pth.pth

正在开发支持的框架:

  • Torch7 (help wants)
  • Chainer (help wants)

正在开发支持的模型:

  • Face Detection
  • Semantic Segmentation
  • Image Style Transfer
  • Object Detection
  • RNN

 

模型可视化

您可以使用MMdnn模型可视化器并提交IR json文件来可视化模型。为了运行下面的命令,您需要安装requests、keras和Tensorflow。

Use the Keras "inception_v3" model as an example again.

下载这个预训练好的模型

$ mmdownload -f keras -n inception_v3

将预先训练好的模型文件转换为中间表示

$ mmtoir -f keras -w imagenet_inception_v3.h5 -o keras_inception_v3
  1. 打开 MMdnn model visualizer ,然后选择文件 keras_inception_v3.json

vismmdnn

 

一些例子

Official Tutorial

Users' Examples

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐