1. 程式人生 > 其它 >Github 專案推薦 | 微軟開源 MMdnn,模型可在多框架間轉換

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