陈程:MMdnn如何让模型在不同深度学习框架间转换?
Posted 微软研究院AI头条
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了陈程:MMdnn如何让模型在不同深度学习框架间转换?相关的知识,希望对你有一定的参考价值。
在深度学习领域,有许多深度学习框架可以让开发者和研究者用于设计模型,每个框架具备各自独特的网络结构定义和模型保存格式。AI工程师和研究者希望自己的模型能够在不同的框架之间转换,但框架之间的差距阻碍了模型之间的交互操作。
今年年初,微软开源了MMdnn,这是一套用于转换、可视化深度神经网络模型的综合性解决方案。MMdnn中的「MM」代表模型管理,「dnn」的意思是深度神经网络,它能够通过中间表征格式让训练模型在Caffe、Keras、MXNet、Tensorflow、CNTK、PyTorch和CoreML等深度学习框架之间转换,帮助开发者实现模型在不同框架之间的交互。
MMdnn主要有以下特征:
模型文件转换器,不同的框架间转换DNN模型
模型代码片段生成器,生成适合不同框架的代码
模型可视化,DNN网络结构和框架参数可视化
模型兼容性测试(正在进行中)
除了MMdnn,微软还推出了多个深度学习框架的「旅行伴侣」,比如以及和多个公司联合提出的。在这些深度学习「旅行伴侣」的帮助下,AI开发者在不同框架之间轻松运用专业知识,实现不同开源社区之间的合作。
不过,对于使用不同平台和不同编程语言的开发者来讲,微软的深度学习框架「旅行伴侣」如何满足他们的需求?这些AI开发工具未来会新增哪些功能?微软还会推出哪些工具帮助AI开发者构建应用?微软亚洲研究院系统组研究员陈程近日接受了AI研习社的采访,为AI开发者解答了上述疑问。
以下是采访内容:
1. 微软推出可以在多个深度学习框架的开源库MMdnn的初衷是什么?
这个项目起源于我们内部开发人员和研究人员的交流。深度学习框架的多样性让许多开发人员面临一个实际问题,就是如何在不同深度学习框架间转换训练代码和模型文件。因此,我们参考FFMpeg(一个广泛使用的视频、音频解码和转换的自由软件)的设计思路,做了这样一个针对深度学习框架界的项目,来增强不同深度学习框架的互操作性。这是一套实验性的开源代码,希望更多人可以一起来完善这个工作,并基于此开发更多新的功能。
2. MMdnn可在多个深度学习框架间转换,那么MMdnn是如何应对不同平台开发者的需求?
MMdnn最开始的设计就考虑了跨平台的需求,MMdnn不仅可以在Windows开发环境下使用,也可以在Linux开发环境下使用。MMdnn使用Python作为主要的开发语言,可视化的部分采用JavaScript,这两种语言都可以跨平台使用。
3. 目前市面上有很多模型结构可视化工具,MMdnn模型可视化工具有哪些特别之处?
MMdnn提供的是一个统一的模型可视化工具,用一致的方式可视化其所支持的模型格式:Caffe、Keras、TensorFlow、MXNet、CNTK(CoreML和 PyTorch正在开发中)。用户可以通过该功能了解网络结构以及用于检查网络结构转换结果是否正确。MMdnn同时提供一个网页版的服务(vis.mmdnn.com),更加方便用户使用。
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这三种深度学习框架「旅行伴侣」,,同时也宣布更新了一系列新的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²的研发工作,以及深度学习框架的优化和开发。
你也许还想看:
●
●
●
感谢你关注“微软研究院AI头条”,我们期待你的留言和投稿,共建交流平台。来稿请寄:msraai@microsoft.com。
以上是关于陈程:MMdnn如何让模型在不同深度学习框架间转换?的主要内容,如果未能解决你的问题,请参考以下文章