SkillAgentSearch skills...

MMdnn

MMdnn is a set of tools to help users inter-operate among different deep learning frameworks. E.g. model conversion and visualization. Convert models between Caffe, Keras, MXNet, Tensorflow, CNTK, PyTorch Onnx and CoreML.

Install / Use

/learn @microsoft/MMdnn
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

MMdnn MMdnn

PyPi Version License Linux

MMdnn is a comprehensive and cross-framework tool to convert, visualize and diagnose deep learning (DL) models. The "MM" stands for model management, and "dnn" is the acronym of deep neural network.

Major features include:

  • <a href="#conversion">Model Conversion</a>

    • We implement a universal converter to convert DL models between frameworks, which means you can train a model with one framework and deploy it with another.
  • Model Retraining

    • During the model conversion, we generate some code snippets to simplify later retraining or inference.
  • Model Search & Visualization

    • We provide a model collection to help you find some popular models.
    • We provide a <a href="#visualization">model visualizer</a> to display the network architecture more intuitively.
  • Model Deployment

    • We provide some guidelines to help you deploy DL models to another hardware platform.

    • We provide a guide to help you accelerate inference with TensorRT.

Related Projects

Targeting at openness and advancing state-of-art technology, Microsoft Research (MSR) and Microsoft Software Technology Center (STC) had also released few other open source projects:

  • OpenPAI : an open source platform that provides complete AI model training and resource management capabilities, it is easy to extend and supports on-premise, cloud and hybrid environments in various scale.
  • FrameworkController : an open source general-purpose Kubernetes Pod Controller that orchestrate all kinds of applications on Kubernetes by a single controller.
  • NNI : a lightweight but powerful toolkit to help users automate Feature Engineering, Neural Architecture Search, Hyperparameter Tuning and Model Compression.
  • NeuronBlocks : an NLP deep learning modeling toolkit that helps engineers to build DNN models like playing Lego. The main goal of this toolkit is to minimize developing cost for NLP deep neural network model building, including both training and inference stages.
  • SPTAG : Space Partition Tree And Graph (SPTAG) is an open source library for large scale vector approximate nearest neighbor search scenario.

We encourage researchers, developers and students to leverage these projects to boost their AI / Deep Learning productivity.

Installation

Install manually

You can get a stable version of MMdnn by

pip install mmdnn

And make sure to have Python installed or you can try the newest version by

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

Install with docker image

MMdnn provides a docker image, which packages MMdnn and Deep Learning frameworks that we support as well as other dependencies. You can easily try the image with the following steps:

  1. Install Docker Community Edition(CE)

    Learn more about how to install docker

  2. Pull MMdnn docker image

    docker pull mmdnn/mmdnn:cpu.small
    
  3. Run image in an interactive mode

    docker run -it mmdnn/mmdnn:cpu.small
    

Features

<a name="conversion">Model Conversion</a>

Across the industry and academia, there are a number of existing frameworks available for developers and researchers to design a model, where each framework has its own network structure definition and saving model format. The gaps between frameworks impede the inter-operation of the models.

<img src="https://raw.githubusercontent.com/Microsoft/MMdnn/master/docs/supported.jpg" width="633" >

We provide a model converter to help developers convert models between frameworks through an intermediate representation format.

Support frameworks

[Note] You can click the links to get detailed README of each framework.

Tested models

The model conversion between currently supported frameworks is tested on some ImageNet models.

Models | Caffe | Keras | TensorFlow | CNTK | MXNet | PyTorch | CoreML | ONNX :-----:|:-----:|:-----:|:----------:|:----:|:-----:|:--------:|:------:|:-----:| VGG 19 | √ | √ | √ | √ | √ | √ | √ | √ Inception V1 | √ | √ | √ | √ | √ | √ | √ | √ Inception V3 | √ | √ | √ | √ | √ | √ | √ | √ Inception V4 | √ | √ | √ | o | √ | √ | √ | √ ResNet V1 | × | √ | √ | o | √ | √ | √ | √ ResNet V2 | √ | √ | √ | √ | √ | √ | √ | √ MobileNet V1 | × | √ | √ | o | √ | √ | √ | √ | √ MobileNet V2 | × | √ | √ | o | √ | √ | √ | √ | √ Xception | √ | √ | √ | o | × | √ | √ | √ | √ SqueezeNet | √ | √ | √ | √ | √ | √ | √ | √ | √ DenseNet | √ | √ | √ | √ | √ | √ | √ | √ NASNet | x | √ | √ | o | √ | √ | √ | x ResNext | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ voc FCN | | | √ | √ | | Yolo3 | | √ | | √ |

Usage

One command to achieve the conversion. Using TensorFlow ResNet V2 152 to PyTorch as our example.

$ 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

Done.

On-going frameworks

  • Torch7 (help wanted)
  • Chainer (help wanted)

On-going Models

  • Face Detection
  • Semantic Segmentation
  • Image Style Transfer
  • Object Detection
  • RNN

<a name="visualization">Model Visualization</a>

We provide a local visualizer to display the network architecture of a deep learning model. Please refer to the instruction.


Examples

Official Tutorial

Users' Examples

Related Skills

View on GitHub
GitHub Stars5.8k
CategoryEducation
Updated14h ago
Forks958

Languages

Python

Security Score

100/100

Audited on Mar 24, 2026

No findings