GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

Microsoft

MMdnn – MMdnnは、さまざまな深い学習フレームワーク間でユーザーが相互運用するのを支援する一連のツールです。 例えば、モデル変換と視覚化。 Caf..

投稿日:

MMdnnは、さまざまな深い学習フレームワーク間でユーザーが相互運用するのを支援する一連のツールです。 例えば、モデル変換と視覚化。 Caffe、Keras、MXNet、Tensorflow、CNTK、PyTorch、CoreMLの間でモデルを変換します。

MMdnn

深いニューラルネットワークモデルを変換し、視覚化し、診断する包括的なクロスフレームワークソリューションです。 MMdnnの “MM”はモデル管理を表し、 “dnn”は深いニューラルネットワークの頭字語です。

基本的には、あるフレームワークによって訓練された多くのDNNモデルを他のフレームワークに変換します。 主な機能は次のとおりです。

  • モデルファイルコンバータフレームワーク間でDNNモデルを変換する
  • モデルコードスニペットジェネレータフレームワークのトレーニングまたは推論コードスニペットの生成
  • モデルの可視化フレームワークのDNNネットワークアーキテクチャとパラメータの可視
  • モデル互換性テスト (継続中)

このプロジェクトは、 Microsoft Research(MSR)によって設計および開発されました また、研究者と学生がこのプロジェクトを活用してDNNモデルを分析することを推奨し、このプロジェクトを拡張するための新しいアイディアを歓迎します。

インストール

あなたはMMdnnの安定したバージョンを

pip install https://github.com/Microsoft/MMdnn/releases/download/0.1.4/mmdnn-0.1.4-py2.py3-none-any.whl

またはあなたは最新のバージョンを試すことができます

pip install -U git+https://github.com/Microsoft/MMdnn.git@master

特徴

モデル変換

業界および学界には、開発者や研究者がモデルを設計するための既存のフレームワークが多数あります。各フレームワークには独自のネットワーク構造定義と保存モデルがあります。 フレームワーク間のギャップは、モデルの相互運用を妨げる。

私たちは、開発者が中間表現形式を通してフレームワーク間でモデルを変換するのを助けるモデルコンバータを提供します。

サポートフレームワーク

[注]リンクをクリックすると、各フレームワークの詳細READMEを取得できます

テスト済みモデル

現在サポートされているフレームワーク間のモデル変換は、一部のImageNetモデルでテストされます。

モデル カフェ ケラス Tensorflow CNTK MXNet PyTorch CoreML
開始V1 x(LRNなし)
開始V3 ×
開始V4
ResNet V1 50 × o
ResNet V2 152
VGG 19
MobileNet_v1 × ×(DepthwiseConvなし) × ×
Xception × ×(SeparableConvなし) × ×
スクイーズネット ×
DenseNet
NASNet ×(SeparableConvなし)
ResNext

進行中のフレームワーク

  • ONNX
  • PyTorch(ソース、正式リリース0.4.0を待っている)
  • カフェ2
  • Torch7(ソース)
  • CoreML(ソース)
  • チェーンャー(ヘルプが欲しい)

進行中のモデル

  • イメージスタイルの転送
  • オブジェクトの検出
  • RNN

モデルの可視化

MMdnnモデルのビジュアライザーを使用してIR jsonファイルを送信して、 モデルを視覚化することができます。 以下のコマンドを実行するには、お気に入りのパッケージマネージャを使用してリクエストケラスTensorflowをインストールする必要があります。

もう一度Keras “inception_v3″モデルを使用してください。

  1. 事前訓練を受けたモデルをダウンロードする
$ mmdownload -f keras -n inception_v3
  1. 事前に訓練されたモデルファイルを中間表現に変換する
$ mmtoir -f keras -w imagenet_inception_v3.h5 -o keras_inception_v3
  1. MMdnnモデルビジュアライザを開き、ファイルkeras_inception_v3.jsonを選択します


公式チュートリアル

ユーザーの例


貢献する

中間表現

中間表現は、 NumPyネイティブ形式のバイナリおよび事前訓練された重み付けの プロトタイプネットワークアーキテクチャを格納します。

[注意!]現在、IR加重データはNHWC(チャネルラスト)形式です。

詳細はops.txtgraph.protoにあります。 新しいオペレータとコメントは大歓迎です。

フレームワーク

私たちはCaffe2、PyTorch、CoreMLなどの他のフレームワークの変換と可視化に取り組んでいます。 さらに多くのRNN関連事業者が調査中です。 寄付や提案は大歓迎です!

ライセンス

ほとんどの貢献は、あなたがあなたの貢献を利用する権利をあなたに与え、実際にそれを行う権利を持っていることを宣言するコントリビュータライセンス契約(CLA)に同意することを要求します。 詳細については、 https://cla.microsoft.comを参照してください

プルリクエストを提出すると、CLA-botはCLAを提供し、PRを適切に飾る必要があるかどうかを自動的に判断します(ラベル、コメントなど)。 単にボットの指示に従ってください。 私たちのCLAを使って、すべてのリポジトリで一度だけこれを行う必要があります。

このプロジェクトは、 Microsoft Open Source Code of Conductを採用しました。 詳細については、「行動規範FAQ」を参照するか、その他のご質問やご意見があればopencode@microsoft.comまでお 問い合わせください

謝辞

Saumitro Dasguptaのおかげで、 caffe – > IR変換の初期コードは、彼のプロジェクトcaffe-tensorflowへの参照です







-Microsoft
-, , , , , , , ,

執筆者: