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許可獲得許可。