微软开源的深度学习模型转换工具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-

原文发布于微信公众号 - 专知(Quan_Zhuanzhi)

原文发表时间:2018-10-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张红林的专栏

点击率预测综述 ( 上篇)

在计算广告、推荐系统等不同业务系统中都对预测物品的点击率有需求,所以这方面的研究也比较多,本文试着梳理一下相关的技术脉络。

5.2K6
来自专栏ATYUN订阅号

【业界】自动机器学习的数据准备要素——分析行业重点

数据准备对于任何分析、商业智能或机器学习工作都是至关重要的。尽管自动机器学习提供了防止常见错误的保护措施,并且足够健壮地来处理不完美的数据,但是你仍然需要适当地...

3104
来自专栏CreateAMind

Deep Learning Book 中文第五章-5.6 机器学习基础

学习算法:任务、性能度量、经验;容量、过拟合、欠拟合;超参数;估计、偏差、方差;最大似然估计;贝叶斯统计。

953
来自专栏量子位

自动给神经网络找bug,Google发布TensorFuzz

能不能把炼丹师们从无休止无希望的debug工作中拯救出来?两位谷歌大脑研究员Augustus Odena和Ian Goodfellow说,好像能。

1500
来自专栏机器学习之旅

Google团队在DNN的实际应用方式的整理

很荣幸有机会和论文作者Emre Sargin关于之前发的Deep Neural Networks for YouTube Recommendations进行交流...

1242
来自专栏技术随笔

[译] Introduction to debugging neural networks

3526
来自专栏MelonTeam专栏

老司机用神经网络带您安全驾驶

0 概述 随着今年深度学习的热潮的来临,神经网络已经被应用在越来越多的应用中。而在印象中对于神经网络进行训练的往往需要借助大量的计算资源与数据。其实通过一定的...

2555
来自专栏QQ大数据团队的专栏

神盾推荐——离线算法平台

1.7K7
来自专栏深度学习-机器学习

深度学习三大框架对比

人工智能的浪潮正席卷全球,诸多词汇时刻萦绕在我们的耳边,如人工智能,机器学习,深度学习等。“人工智能”的概念早在1956年就被提出,顾名思义用计算机来构造复杂的...

6257
来自专栏PaddlePaddle

【AI核心技术】课程九:卷积网络深入理解

UAI与PaddlePaddle联合推出的【AI核心技术掌握】系列课程持续更新中!

761

扫码关注云+社区

领取腾讯云代金券