MMDNN是一种综合且跨帧的工具,可转换,可视化和诊断深度学习(DL)模型。 “ MM”代表模型管理,而“ DNN”是深神经网络的首字母缩写。
主要功能包括:
模型转换
模型再培训
模型搜索和可视化
模型部署
我们提供一些指南,以帮助您将DL模型部署到另一个硬件平台。
我们提供了一个指南,以帮助您加速使用Tensorrt推断。
针对开放性和进步最先进的技术,微软研究(MSR)和微软软件技术中心(STC)也发布了其他一些开源项目:
我们鼓励研究人员,开发人员和学生利用这些项目提高其AI /深度学习生产力。
您可以通过
pip install mmdnn并确保安装了Python,或者您可以尝试使用最新版本
pip install -U git+https://github.com/Microsoft/MMdnn.git@masterMMDNN提供了一个Docker映像,该图像包含我们支持的MMDNN和深度学习框架以及其他依赖性。您可以通过以下步骤轻松尝试图像:
安装Docker社区版(CE)
了解有关如何安装Docker的更多信息
拉mmdnn docker图像
docker pull mmdnn/mmdnn:cpu.small在交互模式下运行图像
docker run -it mmdnn/mmdnn:cpu.small在整个行业和学术界,都有许多现有的框架可供开发人员和研究人员设计一个模型,每个框架都有自己的网络结构定义和保存模型格式。框架之间的缝隙阻碍了模型的互操作。
我们提供一个模型转换器,以帮助开发人员通过中间表示格式在框架之间转换模型。
[注意]您可以单击链接以获取每个框架的详细读数。
当前支持的框架之间的模型转换在某些成像网模型上进行了测试。
| 型号 | 咖啡饼 | 凯拉斯 | 张量 | 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 | √ | √ | √ | √ |
| X Ception | √ | √ | √ | o | × | √ | √ | √ |
| 挤压 | √ | √ | √ | √ | √ | √ | √ | √ |
| Densenet | √ | √ | √ | √ | √ | √ | √ | √ |
| Nasnet | x | √ | √ | o | √ | √ | √ | x |
| Resnext | √ | √ | √ | √ | √ | √ | √ | √ |
| VOC FCN | √ | √ | ||||||
| YOLO3 | √ | √ |
一个命令来实现转换。将TensorFlow Resnet V2 152作为我们的示例。
$ 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完毕。
我们提供本地可视化器,以显示深度学习模型的网络体系结构。请参阅指令。
KERAS“ Inception V3”到CNTK和相关问题
Tensorflow Slim模型“ Resnet V2 152”到Pytorch
MXNET模型“ Lresnet50e-ir”到TensorFlow和相关问题
mxnet“ resnet-152-11k”到pytorch
mxnet“ resnet-152-11k”的另一个示例
mxnet“ Resnext”到Keras
TensorFlow“ Resnet-101”到Pytorch
TensorFlow“ MNIST MLP模型”到CNTK
tensorflow“ inception_v3”到mxnet
caffe“ vov-fcn”到张量
caffe“ Alexnet”到TensorFlow
caffe“ inception_v4”到TensorFlow
caffe“ vgg16_sod”到tensorflow
caffe“ Squeezenet v1.1”到CNTK
大多数捐款要求您同意签订贡献者许可协议(CLA),宣布您有权并实际做,请授予我们使用您的贡献的权利。有关详细信息,请访问https://cla.microsoft.com。
当您提交拉动请求时,CLA机器人将自动确定您是否需要提供CLA并适当装饰PR(例如,标签,评论)。只需按照机器人提供的说明即可。您只需要使用我们的CLA在所有存储库中进行一次。
该项目采用了Microsoft开源的行为代码。有关更多信息,请参见《行为守则常见问题守则》或与其他问题或评论联系[email protected]。
中间表示以Numpy天然格式将网络体系结构存储在Protobuf二进制和预训练的权重中。
[Note!]当前IR权重数据以NHWC(通道最后)格式为单位。
详细信息在ops.txt和graph.proto中。欢迎新运营商和任何评论。
我们正在研究其他框架转换和可视化,例如Pytorch,Coreml等。我们正在调查更多的RNN相关运营商。欢迎任何贡献和建议!贡献指南中的详细信息。
刘Yu(北京大学):项目开发人员和维护者
Cheng Chen(Microsoft Research Asia):Caffe,CNTK,Coreml Emitter,Keras,Mxnet,Tensorflow
Jiahao Yao(北京大学):Coreml,Mxnet Emitter,Pytorch Parser;首页
Ru Zhang(中国科学院):Coreml Emitter,Darknet Parser,Keras,Tensorflow Frozen Graph Parser; Yolo和SSD模型;测试
Yuhao Zhou(上海Jiao Tong大学):MXNET
刺秦(Microsoft Research Asia):Caffe Emitter
Tong Zhan(Microsoft):ONNX Emitter
Qianwen Wang(香港科学技术大学):可视化
多亏了Saumitro Dasgupta, Caffe-> IR转换的初始代码是他的Project Caffe -Tensorflow。
根据MIT许可获得许可。