雷锋网 AI 研习社按:近期,微软开源了 MMdnn,这是一套能让用户在不同深度学习框架间做相互操作的工具。比如,模型的转换和可视化,并且可以让模型在 Caffe、Keras、MXNet、Tensorflow、CNTK、PyTorch 和 CoreML 之间转换。雷锋网 AI 研习社将微软 Github 官网介绍编译如下,供开发者参考:
Github 地址:https://github.com/Microsoft/MMdnn
MMdnn 中的「MM」代表模型管理,「dnn」的意思是深度神经网络。它可以将由一个框架训练的 DNN 模型转换到其他框架里,其主要的特点如下:
Model File Converter 在不同框架间转换 DNN 模型。
Model Code Snippet Generator 为框架生成训练代码
Model Visualization DNN 网络结构和框架参数可视化
Model compatibility testing(正在开发中)
开发者可以从以下链接获得 MMdnn 的稳定版本:
pip install https://github.com/Microsoft/MMdnn/releases/download/0.1.3/mmdnn-0.1.3-py2.py3-none-any.whl
或者尝试下最新的版本:
pip install -U git+https://github.com/Microsoft/MMdnn.git@master
模型转换
整个工业界和学术界有很多现成的框架供开发人员和研究人员参考和使用,每个框架都有各自的网络结构定义和模型存储格式。框架之间的差异阻碍了模型之间的相互操作。
MMdnn 提供一个模型转换器,用于帮助开发者在不同框架之间通过中间格式转换模型。
支持的框架:
Caffe
Keras
MXNet
Tensorflow (Experimental) (Highly recommend you read the README of tensorflow firstly)
Microsoft Cognitive Toolkit (CNTK) (Destination only)
PyTorch (Destination only)
CoreML (Experimental, Destination only)
测试的模型
官方用 ImageNet 模型测试了目前已经支持的框架的模型转换功能。
在测试的框架
PyTorch (Source)
CNTK (Source)
Caffe2
ONNX
在测试的模型
RNN
Image Style Transfer
Object Detection
模型可视化
你可以使用 MMdnn 模型可视化器并且提交 IR json 文件来可视化你的模型。在运行下面的命令行之前,你需要用你最喜欢的包管理器安装 Keras、Tensorflow 和相关的请求。
用 Keras 「inception_v3」模型做示例:
1.下载预训练模型
python -m mmdnn.conversion.examples.keras.extract_model -n inception_v3
2.将预训练模型转换为中间表征
python3 -m mmdnn.conversion._script.convertToIR -f keras -d keras_inception_v3 -n imagenet_inception_v3.json
3.打开 Open the MMdnn model visualizer 然后选择文件 keras_inception_v3.json
详细说明和示例请参照 MMdnn 官方 Github 页面:
https://github.com/Microsoft/MMdnn
有关 MMdnn 后续的更新,雷锋网 AI 研习社将持续关注。