当前位置:K88软件开发文章中心编程资讯编程资讯20 → 文章内容

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

减小字体 增大字体 作者:华军  来源:华军资讯  发布时间:2019-2-18 3:12:59

原标题:陈程:MMdnn如何让模型在不同深度学习框架间转换?编者按:为了帮助开发者实现深度学习模型在不同框架之间的交互,微软在年初开源了MMdnn,这是一套用于转换、可视化深度神经网络模型的综合性解决方案。除此之外,微软还推出了深度学习框架的通用语言repo 1.0以深度学习联合标准ONNX。近日,微软亚洲研究院系统组研究员陈程接受了AI研习社的采访,为AI开发者详解了这些AI开发工具。文章转载自公众号“AI研习社”。在深度学习领域,有许多深度学习框架可以让开发者和研究者用于设计模型,每个框架具备各自独特的网络结构定义和模型保存格式。AI工程师和研究者希望自己的模型能够在不同的框架之间转换,但框架之间的差距阻碍了模型之间的交互操作。今年年初,微软开源了MMdnn,这是一套用于转换、可视化深度神经网络模型的综合性解决方案。MMdnn中的「MM」代表模型管理,「dnn」的意思是深度神经网络,它能够通过中间表征格式让训练模型在Caffe、Keras、MXNet、Tensorflow、CNTK、PyTorch和CoreML等深度学习框架之间转换,帮助开发者实现模型在不同框架之间的交互。MMdnn主要有以下特征:除了MMdnn,微软还推出了多个深度学习框架的「旅行伴侣」,比如以及和多个公司联合提出的。在这些深度学习「旅行伴侣」的帮助下,AI开发者在不同框架之间轻松运用专业知识,实现不同开源社区之间的合作。不过,对于使用不同平台和不同编程语言的开发者来讲,微软的深度学习框架「旅行伴侣」如何满足他们的需求?这些AI开发工具未来会新增哪些功能?微软还会推出哪些工具帮助AI开发者构建应用?微软亚洲研究院系统组研究员陈程近日接受了AI研习社的采访,为AI开发者解答了上述疑问。以下是采访内容:1. 微软推出可以在多个深度学习框架的开源库MMdnn的初衷是什么?这个项目起源于我们内部开发人员和研究人员的交流。深度学习框架的多样性让许多开发人员面临一个实际问题,就是如何在不同深度学习框架间转换训练代码和模型文件。因此,我们参考FFMpeg(一个广泛使用的视频、音频解码和转换的自由软件)的设计思路,做了这样一个针对深度学习框架界的项目,来增强不同深度学习框架的互操作性。这是一套实验性的开源代码,希望更多人可以一起来完善这个工作,并基于此开发更多新的功能。2. MMdnn可在多个深度学习框架间转换,那么MMdnn是如何应对不同平台开发者的需求?MMdnn最开始的设计就考虑了跨平台的需求,MMdnn不仅可以在Windows开发环境下使用,也可以在Linux开发环境下使用。MMdnn使用Python作为主要的开发语言,可视化的部分采用Java,这两种语言都可以跨平台使用。3. 目前市面上有很多模型结构可视化工具,MMdnn模型可视化工具有哪些特别之处?MMdnn提供的是一个统一的模型可视化工具,用一致的方式可视化其所支持的模型格式:Caffe、Keras、TensorFlow、MXNet、CNTK(CoreML和 PyTorch正在开发中)。用户可以通过该功能了解网络结构以及用于检查网络结构转换结果是否正确。MMdnn同时提供一个网页版的服务(vis.mmdnn.com),更加方便用户使用。4. 你认为MMdnn还有哪些地方需要改进?未来的版本迭代方向是怎样的?MMdnn正在快速开发中,目前主要的规划有:5. 同样是帮助开发者和数据科学家更加方便地使用不同的深度学习框架,MMdnn、ONNX、repo 1.0的差异和特点在哪里?MMdnn专注于提供一个简单易用的工具,以最小的开销帮助开发者和数据科学家在不同深度学习框架之间相互操作。ONNX是微软联合多个相关公司一起推动的深度学习模型标准。该标准可以更好地为软件和硬件厂商间提供更好的可交互性。多家公司的支持也利于推动不同框架内部的互操作支持。MMdnn也将支持ONNX格式。ONNX GitHub链接:https://github.com/onnx/onnxRepo 1.0目前主要的工作是构建一个跨平台、跨架构、跨硬件的基准测试环境,让开发者和研究人员根据自己的需求,选择最恰当的平台、硬件和深度学习框架。Repo 1.0完整版GitHub链接:https://github.com/ilkarman/DeepLearningFrameworks6. 除了开源大量的AI工具,微软还通过哪些方式帮助开发者构建AI应用?我们为了帮助开发者更快捷地开发、部署、优化AI应用,正在研究并也已经陆续推出了一系列的深度学习平台和工具,比如:除了上述的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、分布式计算平台TuX2的研发工作,以及深度学习框架的优化和开发。

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