陈程:MMdnn如何让模型在不同深度学习框架间转换?

编者按:为了帮助开发者实现深度学习模型在不同框架之间的交互,微软在年初开源了MMdnn,这是一套用于转换、可视化深度神经网络模型的综合性解决方案。除此之外,微软还推出了深度学习框架的通用语言repo 1.0以深度学习联合标准ONNX。近日,微软亚洲研究院系统组研究员陈程接受了AI研习社的采访,为AI开发者详解了这些AI开发工具。文章转载自公众号“AI研习社”。

在深度学习领域,有许多深度学习框架可以让开发者和研究者用于设计模型,每个框架具备各自独特的网络结构定义和模型保存格式。AI工程师和研究者希望自己的模型能够在不同的框架之间转换,但框架之间的差距阻碍了模型之间的交互操作。

今年年初,微软开源了MMdnn,这是一套用于转换、可视化深度神经网络模型的综合性解决方案。MMdnn中的「MM」代表模型管理,「dnn」的意思是深度神经网络,它能够通过中间表征格式让训练模型在Caffe、Keras、MXNet、Tensorflow、CNTK、PyTorch和CoreML等深度学习框架之间转换,帮助开发者实现模型在不同框架之间的交互

MMdnn主要有以下特征:

模型文件转换器,不同的框架间转换DNN模型

模型代码片段生成器,生成适合不同框架的代码

模型可视化,DNN网络结构和框架参数可视化

模型兼容性测试(正在进行中)

不过,对于使用不同平台和不同编程语言的开发者来讲,微软的深度学习框架「旅行伴侣」如何满足他们的需求?这些AI开发工具未来会新增哪些功能?微软还会推出哪些工具帮助AI开发者构建应用?微软亚洲研究院系统组研究员陈程近日接受了AI研习社的采访,为AI开发者解答了上述疑问。

以下是采访内容:

1. 微软推出可以在多个深度学习框架的开源库MMdnn的初衷是什么?

这个项目起源于我们内部开发人员和研究人员的交流。深度学习框架的多样性让许多开发人员面临一个实际问题,就是如何在不同深度学习框架间转换训练代码和模型文件。因此,我们参考FFMpeg(一个广泛使用的视频、音频解码和转换的自由软件)的设计思路,做了这样一个针对深度学习框架界的项目,来增强不同深度学习框架的互操作性。这是一套实验性的开源代码,希望更多人可以一起来完善这个工作,并基于此开发更多新的功能。

2. MMdnn可在多个深度学习框架间转换,那么MMdnn是如何应对不同平台开发者的需求?

MMdnn最开始的设计就考虑了跨平台的需求,MMdnn不仅可以在Windows开发环境下使用,也可以在Linux开发环境下使用。MMdnn使用Python作为主要的开发语言,可视化的部分采用JavaScript,这两种语言都可以跨平台使用

3. 目前市面上有很多模型结构可视化工具,MMdnn模型可视化工具有哪些特别之处?

4. 你认为MMdnn还有哪些地方需要改进?未来的版本迭代方向是怎样的?

MMdnn正在快速开发中,目前主要的规划有:

完善文档和开发指南,方便用户使用,以及帮助有兴趣的开发者来一起共同工作;

支持更多的模型种类,比如语义分割、物体检测、行为识别,以及自然语言处理方面的模型;

进一步提高MMdnn的易用性,例如将其主要功能做成一种服务,用户可以在线转换模型而不需要再下载使用;

推进模型可视化工具和可视化模型编辑工具的开发

利用MMdnn进行模型结构分析和探索相关的研究工作

5. 同样是帮助开发者和数据科学家更加方便地使用不同的深度学习框架,MMdnn、ONNX、repo 1.0的差异和特点在哪里?

MMdnn专注于提供一个简单易用的工具,以最小的开销帮助开发者和数据科学家在不同深度学习框架之间相互操作。

ONNX是微软联合多个相关公司一起推动的深度学习模型标准。该标准可以更好地为软件和硬件厂商间提供更好的可交互性。多家公司的支持也利于推动不同框架内部的互操作支持。MMdnn也将支持ONNX格式。

ONNX GitHub链接:

https://github.com/onnx/onnx

Repo 1.0目前主要的工作是构建一个跨平台、跨架构、跨硬件的基准测试环境,让开发者和研究人员根据自己的需求,选择最恰当的平台、硬件和深度学习框架。

Repo 1.0完整版GitHub链接:

https://github.com/ilkarman/DeepLearningFrameworks

6. 除了开源大量的AI工具,微软还通过哪些方式帮助开发者构建AI应用?

我们为了帮助开发者更快捷地开发、部署、优化AI应用,正在研究并也已经陆续推出了一系列的深度学习平台和工具,比如:

针对开发阶段,微软提供Visual Studio Tools for AI和Visual Studio Code Tools for AI,让开发者更容易地在本地和远程甚至在Azure上开发和调试深度学习程序。同时更加方便的开发Windows UWP和Android及iOS下深度学习相关的应用;

Visual Studio Tools for AI: https://www.visualstudio.com/zh-hans/downloads/ai-tools-vs/

Visual Studio Code Tools for AI: https://www.visualstudio.com/zh-hans/downloads/ai-tools-vscode/

在微软的Azure云计算平台上,微软通过Azure Machine Learning和Azure Batch AI服务为广大开发者提供深度学习训练的GPU计算平台和任务管理服务;

微软也通过Cognitive Services(微软认知服务)和Bot Framework为开发者提供高阶的人工智能API和开发框架。

除了上述的MMdnn、Repo 1.0和ONNX这三种深度学习框架「旅行伴侣」,

微软在5月7号的Build 开发者大会上也发布了不少与AI相关的产品

,同时也宣布更新了一系列新的AI开发工具。在微软一系列AI工具的加持下,不论是高阶的AI开发者还是刚入门的AI新手,都能更加便捷地把AI融入到他们自己的商业模式和应用产品中

有关MMdnn的详细信息请访问GitHub官方页面以及陈程GitHub个人站。

MMdnn GitHub:

https://github.com/Microsoft/MMdnn

陈程个人GitHub:

https://github.com/kitstar

陈程简介

陈程,微软亚洲研究院系统研究组副研究员,研究领域包括存储、分布式系统、分布式计算和机器学习系统。曾经参与必应(Bing)搜索引擎Per Document Index Service存储系统、分布式系统开发框架rDSN、分布式计算平台TuX²的研发工作,以及深度学习框架的优化和开发。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180527A0XOOL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券