MMDNN adalah alat yang komprehensif dan cross-framework untuk mengonversi, memvisualisasikan, dan mendiagnosis model pembelajaran mendalam (DL). "MM" adalah singkatan dari Model Management, dan "DNN" adalah akronim dari Deep Neural Network.
Fitur utama meliputi:
Konversi model
Model pelatihan ulang
Pencarian & Visualisasi Model
Penyebaran model
Kami memberikan beberapa pedoman untuk membantu Anda menggunakan model DL ke platform perangkat keras lain.
Kami memberikan panduan untuk membantu Anda mempercepat inferensi dengan Tensorrt.
Menargetkan pada keterbukaan dan memajukan teknologi canggih, Microsoft Research (MSR) dan Microsoft Software Technology Center (STC) juga telah merilis beberapa proyek open source lainnya:
Kami mendorong para peneliti, pengembang, dan siswa untuk memanfaatkan proyek -proyek ini untuk meningkatkan produktivitas AI / pembelajaran mendalam mereka.
Anda bisa mendapatkan versi mmdnn yang stabil
pip install mmdnnDan pastikan untuk menginstal python atau Anda dapat mencoba versi terbaru dengan
pip install -U git+https://github.com/Microsoft/MMdnn.git@masterMMDNN menyediakan gambar Docker, yang mengemas MMDNN dan kerangka kerja pembelajaran mendalam yang kami dukung serta ketergantungan lainnya. Anda dapat dengan mudah mencoba gambar dengan langkah -langkah berikut:
Instal Docker Community Edition (CE)
Pelajari lebih lanjut tentang cara menginstal Docker
Tarik gambar Docker Mmdnn
docker pull mmdnn/mmdnn:cpu.smallJalankan gambar dalam mode interaktif
docker run -it mmdnn/mmdnn:cpu.smallDi seluruh industri dan akademisi, ada sejumlah kerangka kerja yang ada yang tersedia bagi pengembang dan peneliti untuk merancang model, di mana setiap kerangka kerja memiliki definisi struktur jaringan sendiri dan menghemat format model. Kesenjangan antara kerangka kerja menghambat antar operasi model.
Kami menyediakan konverter model untuk membantu pengembang mengonversi model antara kerangka kerja melalui format representasi menengah.
[Catatan] Anda dapat mengklik tautan untuk mendapatkan readme rinci dari setiap kerangka kerja.
Konversi model antara kerangka kerja yang saat ini didukung diuji pada beberapa model Imagenet .
| Model | Caffe | Keras | Tensorflow | Cntk | Mxnet | Pytorch | Coreml | Onnx |
|---|---|---|---|---|---|---|---|---|
| VGG 19 | √ | √ | √ | √ | √ | √ | √ | √ |
| Inception v1 | √ | √ | √ | √ | √ | √ | √ | √ |
| Inception v3 | √ | √ | √ | √ | √ | √ | √ | √ |
| Inception v4 | √ | √ | √ | Hai | √ | √ | √ | √ |
| Resnet v1 | × | √ | √ | Hai | √ | √ | √ | √ |
| Resnet v2 | √ | √ | √ | √ | √ | √ | √ | √ |
| MobileNet v1 | × | √ | √ | Hai | √ | √ | √ | √ |
| MobileNet v2 | × | √ | √ | Hai | √ | √ | √ | √ |
| Xception | √ | √ | √ | Hai | × | √ | √ | √ |
| Squeezenet | √ | √ | √ | √ | √ | √ | √ | √ |
| Densenet | √ | √ | √ | √ | √ | √ | √ | √ |
| Nasnet | X | √ | √ | Hai | √ | √ | √ | X |
| Resnext | √ | √ | √ | √ | √ | √ | √ | √ |
| VOC FCN | √ | √ | ||||||
| Yolo3 | √ | √ |
Satu perintah untuk mencapai konversi. Menggunakan TensorFlow ResNet v2 152 untuk Pytorch sebagai contoh kami.
$ 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.pthSelesai.
Kami menyediakan visualisasi lokal untuk menampilkan arsitektur jaringan dari model pembelajaran yang mendalam. Silakan merujuk pada instruksi.
Keras "inception v3" ke cntk dan masalah terkait
TensorFlow Slim Model "Resnet V2 152" ke Pytorch
Model mxnet "lresnet50e-ir" ke tensorflow dan masalah terkait
Mxnet "resnet-152-11k" ke pytorch
Contoh lain dari mxnet "resnet-152-11k" ke pytorch
Mxnet "resnext" ke keras
TensorFlow "Resnet-101" ke Pytorch
TensorFlow "Model MLP MLP" ke CNTK
TensorFlow "Inception_v3" ke mxnet
Caffe "voc-fcn" ke tensorflow
Caffe "Alexnet" ke Tensorflow
Caffe "Inception_v4" ke tensorflow
Caffe "vgg16_sod" ke tensorflow
Caffe "Squeezenet v1.1" ke cntk
Sebagian besar kontribusi mengharuskan Anda untuk menyetujui perjanjian lisensi kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk dan benar -benar melakukannya, beri kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.microsoft.com.
Saat Anda mengirimkan permintaan tarik, CLA-bot akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghiasi PR secara tepat (misalnya, label, komentar). Cukup ikuti instruksi yang disediakan oleh bot. Anda hanya perlu melakukan ini sekali di semua repo menggunakan CLA kami.
Proyek ini telah mengadopsi kode perilaku open source Microsoft. Untuk informasi lebih lanjut, lihat FAQ Kode Perilaku atau hubungi [email protected] dengan pertanyaan atau komentar tambahan.
Representasi perantara menyimpan arsitektur jaringan dalam bobot biner protobuf dan pra-terlatih dalam format asli yang numpy .
[Catatan!] Saat ini data IR bobot dalam format NHWC (saluran terakhir).
Detailnya ada di Ops.txt dan Graph.proto. Operator baru dan komentar apa pun dipersilakan.
Kami sedang mengerjakan konversi dan visualisasi kerangka kerja lain, seperti Pytorch, Coreml dan sebagainya. Kami sedang menyelidiki lebih banyak operator terkait RNN. Kontribusi dan saran apa pun dipersilakan! Detail dalam Pedoman Kontribusi.
Yu Liu (Universitas Peking): Pengembang & Pemelihara Proyek
Cheng Chen (Microsoft Research Asia): Caffe, CNTK, Coreml Emitter, Keras, MXNet, TensorFlow
JiaHao Yao (Universitas Peking): Coreml, Emitter MXNet, Pytorch Parser; Beranda
Ru Zhang (Akademi Ilmu Pengetahuan Cina): Coreml Emitter, Darknet Parser, Keras, Tensorflow Frozen Graph Parser; Model Yolo dan SSD; Tes
Yuhao Zhou (Universitas Shanghai Jiao Tong): MXNET
Tingting Qin (Microsoft Research Asia): Caffe Emitter
Tong Zhan (Microsoft): Onnx Emitter
Qianwen Wang (Universitas Sains dan Teknologi Hong Kong): Visualisasi
Terima kasih kepada Saumitro Dasgupta, kode awal Caffe -> IR Converting adalah referensi untuk proyeknya Caffe -TensorFlow.
Berlisensi di bawah lisensi MIT.