MMdnn:MMdnn is a set of tools to help users inter-operate among different deep learning frameworks. E.g. model conversion and visualization. Convert models between Caffe, Keras, MXNet, Tensorflow, CNTK, PyTorch Onnx and CoreML.

MMdnn is a set of tools to help users inter-operate among different deep learning frameworks. E.g. model conversion and visualization. Convert models between Caffe, Keras, MXNet, Tensorflow, CNTK, PyTorch Onnx and CoreML.

分支14Tags12
文件最后提交记录最后更新时间
Normalize line ending and fix absolute paths. (#855) 5 年前
Update pytorch_graph.py Add output shape check5 年前
Update requirements5 年前
Add support for pytorch1.5.1 * Update pytorch_graph.py * Update pytorch_parser.py * Update pytorch_parser.py * Update pytorch_graph.py * Update pytorch_emitter.py * Update pytorch_graph.py * Update pytorch_parser.py * Update keras2_emitter.py * Update convertToIR.py * Update conversion_imagenet.py5 年前
Update README.md, setup.py etc. (#537) * 1. Add .gitattributes file to force shell files to have LF line ending. 2. Add setup.cfg to build a universal wheel package. 3. Remove version information from mmdnn/__init__.py . 4. Update author and email information in setup.py . 5. Update README.md . * Add a new line. * Set caffe library path correctly in . 7 年前
Update the .gitignore file. (#854) 5 年前
Update versions of DL frameworks and dependent packages. (#816) 1. Update versions of packages. 2. Fix some bugs.6 年前
Update ISSUE_TEMPLATE.md8 年前
Initial commit8 年前
Update README.md on the model visualization part. (#888) 5 年前
Microsoft mandatory file (#938) Co-authored-by: microsoft-github-policy-service[bot] <77245923+microsoft-github-policy-service[bot]@users.noreply.github.com>3 年前
Set theme jekyll-theme-cayman7 年前
Update README.md, setup.py etc. (#537) * 1. Add .gitattributes file to force shell files to have LF line ending. 2. Add setup.cfg to build a universal wheel package. 3. Remove version information from mmdnn/__init__.py . 4. Update author and email information in setup.py . 5. Update README.md . * Add a new line. * Set caffe library path correctly in . 7 年前
Update setup.py5 年前
Upgrade Travis build environment. (#812) Upgrade Travis build environment.6 年前

MMdnn

MMdnn

PyPi 版本 许可 Linux

MMdnn 是一个全面且跨框架的工具,用于转换、可视化和诊断深度学习(DL)模型。"MM"代表模型管理,而"dnn"是深度神经网络的缩写。

主要特性包括:

  • 模型转换

    • 我们实现了通用转换器,可以在不同框架之间转换DL模型,这意味着您可以在一个框架下训练模型,然后在另一个框架下部署它。
  • 模型再训练

    • 在模型转换过程中,我们会生成一些代码片段,以简化后续的重训或推断。
  • 模型搜索与可视化

    • 我们提供了一个模型库,帮助您找到一些流行模型。
    • 我们提供了模型可视化器,更直观地显示网络架构。
  • 模型部署

    • 我们提供了一些指南,帮助您将DL模型部署到其他硬件平台。

    • 我们提供了一份指南,帮助您使用TensorRT加速推理。

相关项目

为了开放性并推动前沿技术,微软研究(MSR)微软软件技术中心(STC) 还发布了几个开源项目:

  • OpenPAI:提供完整AI模型训练和资源管理能力的开源平台,易于扩展,支持各种规模的本地、云端和混合环境。
  • FrameworkController:一个开源的通用 Kubernetes Pod 控制器,通过单个控制器编排各种应用程序。
  • NNI:轻量但功能强大的工具包,帮助用户自动完成特征工程、神经架构搜索、超参数调优和模型压缩。
  • NeuronBlocks:一个NLP深度学习建模工具包,让工程师像玩乐高一样构建DNN模型,目标是降低NLP深度神经网络模型构建(包括训练和推断阶段)的成本。
  • SPTAG:空间分割树图(Space Partition Tree And Graph)是一个开源库,用于大规模向量近邻搜索场景。

我们鼓励研究人员、开发者和学生利用这些项目来提升他们的AI/深度学习生产力。

安装

手动安装

您可以通过以下命令获取MMdnn的稳定版本:

pip install mmdnn

确保已经安装了Python,或者可以尝试最新版本:

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

使用Docker镜像安装

MMdnn 提供了Docker镜像,该镜像包含MMdnn以及我们支持的深度学习框架和其他依赖项。

  1. 安装Docker社区版(CE)

    了解更多关于如何安装Docker的信息

  2. 拉取MMdnn Docker镜像

    docker pull mmdnn/mmdnn:cpu.small
    
  3. 以交互模式运行镜像

    docker run -it mmdnn/mmdnn:cpu.small
    

功能

模型转换

行业中和学术界存在多种可供开发者和研究人员设计模型的框架,每种框架都有自己的网络结构定义和模型保存格式。这些框架之间的差异阻碍了模型之间的互操作性。

框架支持

我们提供了一个模型转换器,帮助开发者通过中间表示格式在不同框架间转换模型。

支持的框架

[注] 点击各链接可查看每个框架的详细README。

测试模型

目前支持的框架之间对一些ImageNet模型进行了模型转换测试。

模型 Caffe Keras TensorFlow CNTK MXNet PyTorch CoreML ONNX
VGG 19
Inception V1
Inception V3
Inception V4 o
ResNet V1 × o
ResNet V2
MobileNet V1 × o
MobileNet V2 × o
Xception o ×
SqueezeNet
DenseNet
NASNet x o x
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

完成了。

进行中的框架

  • Torch7(需要帮助)
  • Chainer(需要帮助)

进行中的模型

  • 面部检测
  • 语义分割
  • 图像风格转换
  • 对象检测
  • RNN

模型可视化

我们提供了一个本地可视化器,用于展示深度学习模型的网络架构。请参考说明文档


示例

官方教程

用户示例


贡献

大多数贡献需要您签署一个贡献者许可协议(CLA),声明您有权并确实授予我们使用您的贡献的权利。详情访问 https://cla.microsoft.com/

当你提交一个拉取请求时,CLA 机器人会自动确定是否需要提供 CLA,并相应地装饰 PR(例如,标签、评论)。只需按照机器人提供的指示操作即可。您只需在所有使用我们 CLA 的仓库中执行一次此操作。

该项目已采纳 微软开源行为准则。更多信息见 行为准则常见问答 或联系 opencode@microsoft.com 以提出其他问题或评论。

中间表示

中间表示以protobuf二进制格式存储网络架构,以NumPy本机格式存储预训练权重

[注意!] 当前 IR 权重数据采用的是 NHWC(通道最后)格式。

详细信息可在 ops.txtgraph.proto 中查看。欢迎新操作符和任何建议。

框架

我们正在努力开发其他框架的转换和可视化功能,如 PyTorch、CoreML 等。我们也在调查更多与 RNN 相关的操作。欢迎任何贡献和建议!详情参阅 贡献指南

作者

  • 刘玉(北京大学):项目开发者及维护者
  • 陈诚(微软亚洲研究院):Caffe、CNTK、CoreML 发射器、Keras、MXNet、TensorFlow
  • 饶嘉豪(北京大学):CoreML、MXNet 发射器、PyTorch 解析器;主页
  • 张如(中国科学院):CoreML 发射器、DarkNet 解析器、Keras、TensorFlow 冻结图解析器;Yolo 和 SSD 模型;测试
  • 周渝皓(上海交通大学):MXNet
  • 秦彤(微软):ONNX 发射器
  • 王茜文(香港科技大学):可视化

致谢

感谢 Saumitro Dasgupta,初始的 caffe 到 IR 转换 代码参考了他的项目 caffe-tensorflow

许可证

根据 MIT 许可证授权。

项目介绍

MMdnn 是一套工具,旨在协助用户在不同深度学习框架之间进行互操作,例如模型的转换与可视化。该工具能够实现 Caffe、Keras、MXNet、Tensorflow、CNTK、PyTorch、Onnx 以及 CoreML 之间模型的转换。【此简介由AI生成】

定制我的领域
1745.81 K957访问 GitHub

下载使用量

0

项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新

语言类型

Python94.72%
JavaScript2.3%
TSX1.53%
CSS0.77%
TypeScript0.33%