MMDNN-это всеобъемлющий и кросс-рамный инструмент для преобразования, визуализации и диагностики моделей глубокого обучения (DL). «MM» означает управление моделями, а «DNN» - аббревиатура глубокой нейронной сети.
Основные особенности включают:
Конверсия модели
Модель переподготовки
Поиск и визуализация модели
Модель развертывания
Мы предоставляем несколько рекомендаций, которые помогут вам развернуть модели DL на другую аппаратную платформу.
Мы предоставляем руководство, которое поможет вам ускорить вывод с помощью Tensorrt.
Нацеливание на открытость и продвижение современных технологий, Microsoft Research (MSR) и Microsoft Software Technology Center (STC) также выпустили несколько других проектов с открытым исходным кодом:
Мы призываем исследователей, разработчиков и студентов использовать эти проекты, чтобы повысить их производительность ИИ / глубокого обучения.
Вы можете получить стабильную версию Mmdnn от
pip install mmdnnИ обязательно установил Python, или вы можете попробовать новейшую версию
pip install -U git+https://github.com/Microsoft/MMdnn.git@masterMMDNN предоставляет изображение Docker, которое пакеты MMDNN и фреймворки глубокого обучения, которые мы поддерживаем, а также другие зависимости. Вы можете легко попробовать изображение со следующими шагами:
Установить Docker Community Edition (CE)
Узнайте больше о том, как установить Docker
Потяните изображение Mmdnn Docker
docker pull mmdnn/mmdnn:cpu.smallЗапустить изображение в интерактивном режиме
docker run -it mmdnn/mmdnn:cpu.smallВ отрасли и академиях существует ряд существующих рамок для разработчиков и исследователей для разработки модели, где каждая структура имеет свое собственное определение структуры сети и формат модели сохранения. Разрывы между рамками препятствуют взаимодействию моделей.
Мы предоставляем конвертер модели, чтобы помочь разработчикам преобразовать модели между рамками через промежуточный формат представления.
[Примечание] Вы можете щелкнуть ссылки, чтобы получить подробную Readme каждой структуры.
Конверсия модели между поддерживаемыми в настоящее время фреймворками проверяется на некоторых моделях ImageNet .
| Модели | Кофе | Керас | Tensorflow | Cntk | MXNET | Пирог | Коремл | Onnx |
|---|---|---|---|---|---|---|---|---|
| VGG 19 | √ | √ | √ | √ | √ | √ | √ | √ |
| Начало V1 | √ | √ | √ | √ | √ | √ | √ | √ |
| Начало V3 | √ | √ | √ | √ | √ | √ | √ | √ |
| Начало V4 | √ | √ | √ | о | √ | √ | √ | √ |
| Resnet v1 | × | √ | √ | о | √ | √ | √ | √ |
| Resnet v2 | √ | √ | √ | √ | √ | √ | √ | √ |
| Mobilenet v1 | × | √ | √ | о | √ | √ | √ | √ |
| Mobilenet v2 | × | √ | √ | о | √ | √ | √ | √ |
| Xception | √ | √ | √ | о | × | √ | √ | √ |
| Squeezenet | √ | √ | √ | √ | √ | √ | √ | √ |
| Денсенет | √ | √ | √ | √ | √ | √ | √ | √ |
| Наснет | х | √ | √ | о | √ | √ | √ | х |
| Resnext | √ | √ | √ | √ | √ | √ | √ | √ |
| VOC FCN | √ | √ | ||||||
| Yolo3 | √ | √ |
Одна команда для достижения конверсии. Использование Tensorflow Resnet V2 152 для Pytorch в качестве нашего примера.
$ 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Сделанный.
Мы предоставляем локальный визуализатор для отображения сетевой архитектуры модели глубокого обучения. Пожалуйста, обратитесь к инструкции.
Керас «Начало v3» в CNTK и связанный с этим.
Тензорфлоу тонкая модель "resnet v2 152" в pytorch
MXNET MODEL "LRESNET50E-IR" TONSORFLOW и связанная с этим проблему
MXNET "RESNET-152-11K"
Еще один пример MXNET "RESNET-152-11K" TO PYTORCH
MXNET "Resnext" в керас
Tensorflow "resnet-101" в pytorch
Tensorflow "MNIST MLP Model" TO CNTK
Tensorflow "entception_v3" в mxnet
Caffe "voc-fcn" to tensorflow
Caffe "Alexnet" to Tensorflow
Caffe "entception_v4" to tensorflow
Caffe "vgg16_sod" в tensorflow
Caffe "Squeezenet v1.1" to cntk
Большинство взносов требуют, чтобы вы согласились с лицензионным соглашением о участнике (CLA), заявив, что вы имеете право и фактически, предоставите нам права на использование вашего вклада. Для получения подробной информации посетите https://cla.microsoft.com.
Когда вы отправляете запрос на привлечение, CLA-бот автоматически определит, нужно ли вам предоставить CLA и должным образом украсить PR (например, метка, комментарий). Просто следуйте инструкциям, предоставленным ботом. Вам нужно будет сделать это только один раз во всех репо, используя наш CLA.
Этот проект принял код поведения с открытым исходным кодом Microsoft. Для получения дополнительной информации см. Кодекс поведения FAQ или свяжитесь с [email protected] с любыми дополнительными вопросами или комментариями.
Промежуточное представление хранит сетевую архитектуру в бинарных и предварительно обученных весах Protobuf в нативном формате Numpy .
[Примечание!] В настоящее время данные IR Weights находятся в формате NHWC (канал последний).
Подробности в Ops.txt и Graph.proto. Новые операторы и любые комментарии приветствуются.
Мы работаем над преобразованием и визуализацией других фреймворков, таких как Pytorch, Coreml и так далее. Мы расследуем больше операторов, связанных с RNN. Любые вклад и предложения приветствуются! Подробная информация в руководстве по вкладу.
Yu Liu (Peking University): разработчик проекта и сопровождающий
Ченг Чен (Microsoft Research Asia): Caffe, CNTK, Coreml Emitter, Keras, Mxnet, Tensorflow
Jiahao Yao (Peking University): Coreml, Mxnet Emitter, Pytorch Parser; Домашняя страница
Ру Чжан (Китайская академия наук): Эмиттер Coreml, Darknet Parser, Keras, Tensorflow Frozen Parser; Модели YOLO и SSD; Тесты
Юхао Чжоу (Университет Шанхай Цзяо Тонг): MXNET
Тинтинг Цинь (Microsoft Research Asia): излучение кофы
Тонг Чжан (Microsoft): Onnx Emitter
Цяньвен Ван (Гонконгский университет науки и техники): визуализация
Благодаря Saumitro Dasgupta, первоначальный код Caffe -> IR преобразование является ссылками на его проект Caffe -Tensorflow.
Лицензирован по лицензии MIT.