微软开源的深度学习模型转换工具MMdnn

【导读】MMdnn是微软开源的用于不同深度学习框架(Caffe, Keras, MXNet, Tensorflow, CNTK, PyTorch Onnx和CoreML)的模型之间互相转换的工具。另外,MMdnn还具有模型可视化等其他功能。


MMdnn简介


在工业街和学术界中,开发者或者研究人员可以选择多种深度学习框架来构建模型,每种框架有自己特有的网络结构定义以及模型保存格式,这种框架之间的鸿沟阻碍了不同框架模型之间的操作。MMdnn是微软开源的用于不同深度学习框架(Caffe, Keras, MXNet, Tensorflow, CNTK, PyTorch Onnx和CoreML)的模型之间互相转换的工具,通过模型的中间表示来完成不同框架模型之间的转换。其代码被托管在微软的Github中:https://github.com/Microsoft/MMdnn。

支持的框架


目前MMdnn支持的深度学习框架有:

  • Caffe

  • Microsoft Cognitive Toolkit (CNTK)

  • CoreML

  • Keras

  • MXNet

  • ONNX 

  • PyTorch

  • TensorFlow (实验性的) 

  • DarkNet (只在源码中有, 实验性的)


已测试的模型转换


MMdnn在一些ImageNet模型上测试的结果:


MMdnn的安装


MMdnn可以使用pip直接安装:

pip install mmdnn

使用下面的方法可以安装最新版本的MMdnn:

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


用MMdnn进行模型的转换


MMdnn可以使用pip直接安装:

模型的转换只需要一行命令,例如下面的命令会下载TensorFlow的ResNet V2 152模型,并使用MMdnn将其转换为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


用MMdnn进行模型可视化


下载预训练的模型:

mmdownload -f keras -n inception_v3

将预训练模型转换为中间表示:

mmtoir -f keras -w imagenet_inception_v3.h5 -o keras_inception_v3

打开MMdnn模型可视化工具http://mmdnn.eastasia.cloudapp.azure.com:8080/并选择文件keras_inception_v3.json:



官方示例教程


  • Keras "inception V3"转换为CNTK模型:https://github.com/Microsoft/MMdnn/blob/master/docs/keras2cntk.md

  • TensorFlow slim模型ResNet V2 152转换为PyTorch模型:https://github.com/Microsoft/MMdnn/blob/master/docs/tf2pytorch.md

  • Mxnet模型LResNet50E-IR转换为TensorFlow模型:https://github.com/Microsoft/MMdnn/issues/85


-END-

专 · 知


人工智能领域26个主题知识资料全集获取与加入专知人工智能服务群: 欢迎微信扫一扫加入专知人工智能知识星球群,获取专业知识教程视频资料和与专家交流咨询!


请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料!


请加专知小助手微信(扫一扫如下二维码添加),加入专知主题群(请备注主题类型:AI、NLP、CV、 KG等)交流~

 AI 项目技术 & 商务合作:bd@zhuanzhi.ai, 或扫描上面二维码联系!

请关注专知公众号,获取人工智能的专业知识!

点击“阅读原文”,使用专知



展开全文
Top
微信扫码咨询专知VIP会员