MMdnn 是一套帮助用户在不同深度学习框架之间进行互操作的工具。 例如。 模型转换和可视化。 在Caffe,Keras,MXNet,Tensorflow,CNTK,PyTorch Onnx和CoreML之间转换模型。
用于转换,可视化和诊断深度神经网络模型的全面的跨框架解决方案。 MMdnn中的“MM”代表模型管理,“dnn”代表深度神经网络的缩写。
基本上,它将许多由一个框架训练的DNN模型转换成其他模型。 主要功能包括:
模型文件转换器在框架之间转换DNN模型
模型代码片段生成器为框架生成培训或推理代码片段
模型可视化可视化框架的DNN网络体系结构和参数
型号兼容性测试(正在进行)
这个项目是由微软研究院(MSR)设计和开发的。 鼓励研究人员和学生利用这个项目来分析DNN模型,欢迎任何新想法来扩展这个项目。
#安装:
pip install mmdnn #稳定版
pip install -U git+https://github.com/Microsoft/MMdnn.git@master #测试版
#当前支持框架:
- Caffe
- Microsoft Cognitive Toolkit (CNTK)
- CoreML
- Keras
- MXNet
- ONNX (Destination only, initial state)
- PyTorch (Destination only)
- Tensorflow (Experimental) (Highly recommend you read the README of tensorflow firstly)
- DarkNet (Source only, Experiment)
#框架转换具体实现方法:(以 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 --dstNode MMdnn_Output -df pytorch -om tf_resnet_to_pth.pth
(注意:为了命令能够之行,需提前安装:Tensorflow、keras、requests)
以 Keras "inception_v3" model 为例:
1.下载预训练模型
$ mmdownload -f keras -n inception_v32.把预训练模型文件转换为 intermediate representation
$ mmtoir -f keras -w imagenet_inception_v3.h5 -o keras_inception_v3
3.打开 MMdnn model visualizer 并选择文件 keras_inception_v3.json