The unglamorous bridge between deep learning frameworks
MMdnn converts trained models between Caffe, Keras, PyTorch, TensorFlow, and others so you can train in one framework and deploy in another.

What it does MMdnn is a model management toolkit that translates deep learning networks from one framework’s format to another. It reads a trained model—say, a TensorFlow checkpoint—and emits an equivalent network graph and weights compatible with PyTorch, Caffe, MXNet, or several other targets. The project also bundles a local visualizer for network architectures and a small model collection to help you find popular pretrained checkpoints.
The interesting bit Instead of writing a direct converter for every pair of frameworks, MMdnn translates models into an intermediate representation: architecture is stored as protobuf, weights as NumPy arrays. This two-step approach means adding a new framework only requires writing an importer and an exporter to the common IR, not a bespoke converter for every existing source. It is the kind of boring infrastructure that quietly saves weeks of reimplementation.
Key highlights
- Supports conversion among nine frameworks: Caffe, CNTK, CoreML, Keras, MXNet, ONNX (destination only), PyTorch, TensorFlow, and DarkNet (source only).
- Tested conversions cover standard ImageNet architectures like VGG, ResNet, Inception, MobileNet, DenseNet, and SqueezeNet, though the compatibility matrix has gaps (e.g., NASNet to ONNX is unsupported).
- Generates code snippets during conversion to simplify retraining or inference in the target framework.
- Ships with a Docker image bundling all supported frameworks and dependencies.
- Includes deployment guides for TensorRT, TensorFlow Serving, and Android.
Caveats
- TensorFlow and DarkNet support are explicitly marked “Experimental,” and the README warns that TensorFlow conversions need extra attention.
- ONNX is currently supported only as a destination, not a source, and several model-framework pairs in the tested matrix are marked as unsupported or incomplete.
- Broader model categories like object detection, RNNs, and face detection are listed as “on-going,” so expect coverage to be spotty outside standard image classification.
Verdict Worth a look if you are stuck maintaining models across legacy Caffe stacks and modern PyTorch pipelines, or if you need to migrate a pretrained network without retraining from scratch. If you already live entirely inside one ecosystem and never export to mobile or legacy platforms, you probably do not need this.
Frequently asked
- What is microsoft/MMdnn?
- MMdnn converts trained models between Caffe, Keras, PyTorch, TensorFlow, and others so you can train in one framework and deploy in another.
- Is MMdnn open source?
- Yes — microsoft/MMdnn is open source, released under the MIT license.
- What language is MMdnn written in?
- microsoft/MMdnn is primarily written in Python.
- How popular is MMdnn?
- microsoft/MMdnn has 5.8k stars on GitHub.
- Where can I find MMdnn?
- microsoft/MMdnn is on GitHub at https://github.com/microsoft/MMdnn.