Github 项目推荐 | 微软开源 MMdnn,模型可在多框架间转换

时间:2022-05-04
本文章向大家介绍Github 项目推荐 | 微软开源 MMdnn,模型可在多框架间转换,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

近期,微软开源了 MMdnn,这是一套能让用户在不同深度学习框架间做相互操作的工具。比如,模型的转换和可视化,并且可以让模型在 Caffe、Keras、MXNet、Tensorflow、CNTK、PyTorch 和 CoreML 之间转换。

Githubhttps://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