0
本文作者: 孔令雙 | 2018-03-01 16:05 |
雷鋒網(wǎng) AI 研習(xí)社按:近期,微軟開源了 MMdnn,這是一套能讓用戶在不同深度學(xué)習(xí)框架間做相互操作的工具。比如,模型的轉(zhuǎn)換和可視化,并且可以讓模型在 Caffe、Keras、MXNet、Tensorflow、CNTK、PyTorch 和 CoreML 之間轉(zhuǎn)換。雷鋒網(wǎng) AI 研習(xí)社將微軟 Github 官網(wǎng)介紹編譯如下,供開發(fā)者參考:
Github 地址:https://github.com/Microsoft/MMdnn
MMdnn 中的「MM」代表模型管理,「dnn」的意思是深度神經(jīng)網(wǎng)絡(luò)。它可以將由一個框架訓(xùn)練的 DNN 模型轉(zhuǎn)換到其他框架里,其主要的特點如下:
Model File Converter 在不同框架間轉(zhuǎn)換 DNN 模型。
Model Code Snippet Generator 為框架生成訓(xùn)練代碼
Model Visualization DNN 網(wǎng)絡(luò)結(jié)構(gòu)和框架參數(shù)可視化
Model compatibility testing(正在開發(fā)中)
開發(fā)者可以從以下鏈接獲得 MMdnn 的穩(wěn)定版本:
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
模型轉(zhuǎn)換
整個工業(yè)界和學(xué)術(shù)界有很多現(xiàn)成的框架供開發(fā)人員和研究人員參考和使用,每個框架都有各自的網(wǎng)絡(luò)結(jié)構(gòu)定義和模型存儲格式??蚣苤g的差異阻礙了模型之間的相互操作。
MMdnn 提供一個模型轉(zhuǎn)換器,用于幫助開發(fā)者在不同框架之間通過中間格式轉(zhuǎn)換模型。
支持的框架:
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 模型測試了目前已經(jīng)支持的框架的模型轉(zhuǎn)換功能。
在測試的框架
PyTorch (Source)
CNTK (Source)
Caffe2
ONNX
在測試的模型
RNN
Image Style Transfer
Object Detection
模型可視化
你可以使用 MMdnn 模型可視化器并且提交 IR json 文件來可視化你的模型。在運行下面的命令行之前,你需要用你最喜歡的包管理器安裝 Keras、Tensorflow 和相關(guān)的請求。
用 Keras 「inception_v3」模型做示例:
1.下載預(yù)訓(xùn)練模型
python -m mmdnn.conversion.examples.keras.extract_model -n inception_v3
2.將預(yù)訓(xùn)練模型轉(zhuǎn)換為中間表征
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
有關(guān) MMdnn 后續(xù)的更新,雷鋒網(wǎng) AI 研習(xí)社將持續(xù)關(guān)注。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。