Facebook、微软联合推出ONNX 标准,号称要解决开发框架碎片化
雷锋网消息,今日微软和 Facebook 发布了一个全新的开源项目——ONNX,欲借此打造一个开放的深度学习开发工具生态系统。
ONNX 的全称为“Open Neural Network Exchange”,即“开放的神经网络切换”。顾名思义,该项目的目的是让不同的神经网络开发框架做到互通互用。目前,Microsoft Cognitive Toolkit,PyTorch 和 Caffe2 已宣布支持 ONNX。
ONNX 所针对的,可以说是深度学习开发生态中最关键的问题之一:
开发框架的碎片化。
在任意一个框架上训练的神经网络模型,无法直接在另一个框架上用。开发者需要耗费大量时间精力把模型从一个开发平台移植到另一个。
借助 ONNX,开发者能把在 PyTorch 上训练的模型直接拿到 Caffe2 上进行推理。对于把模型从研究阶段推向产品阶段,这是一个经常遇到的场景。微软宣布正积极开发 Microsoft Cognitive Toolkit 的下个版本,将会提供对 ONNX 的支持。
ONNX 的工作原理是:
实时跟踪某个神经网络是如何在这些框架上生成的,接着,使用这些信息创建一个通用的计算图,即符合ONNX 标准的计算图。这样做行得通,是因为在计算方面,这些框架产生的最终结果都非常接近,虽然更高级的表达不同。
ONNX 标准意味着什么?
PyTorch、Microsoft Cognitive Toolkit 等框架提供的界面,让开发者创建、运行用来表示神经网络的计算图更加方便。虽然功能相似,但每一个框架都用一套不同的格式表示这些计算图。雷锋网获知,ONNX 的表示方式有两个核心优势:
框架之间的互用互通
开发者能更方便地在不同框架间切换,为不同任务选择最优工具。基本每个框架都会针对某个特定属性进行优化,比如训练速度、对网络架构的支持、能在移动设备上推理等等。在大多数情况下,研发阶段最需要的属性和产品阶段是不一样的。这导致效率的降低,比如选择不切换到最合适的框架,又或者把模型转移到另一个框架导致额外的工作,造成进度延迟。使用支持 ONNX 表示方式的框架,则大幅简化了切换过程,让开发者的工具选择更灵活。
优化共享
硬件设备商们推出的对神经网络性能的优化,将能够一次性影响到多个开发框架——如果用的是 ONNX 表示方式。如果优化很频繁,把它们单独整合到各个框架是个非常耗费时间的事。通过 ONNX 表示方式,更多开发者就能获取这些优化。
技术概括
ONNX 为可扩展的计算图模型、内部运算器(Operator)以及标准数据类型提供了定义。在初始阶段,Facebook 和微软会专注于推理(Inference)所需要的各项能力(评估)。
每个计算数据流图以节点列表的形式组织起来,构成一个非循环的图。节点有一个或多个的输入与输出。每个节点都是对一个运算器的调用。图还会包含协助记录其目的、作者等信息的元数据。
运算器在图的外部实现,但那些内置的运算器可移植到不同的框架上。每个支持 ONNX 的框架将在匹配的数据类型上提供这些运算器的实现。
TensorFlow 的缺席
ONNX 标准能否在深度学习开发者们接受,在很大程度上将取决于它在各个框架上的普及程度。
在雷锋网看来,目前 ONNX 最大的问题是,最受欢迎的开发框架 TensorFlow 没有兼容 ONNX 标准。亚马逊的御用框架 MXNet 也没有。Facebook 和微软都表示,将来会持续有更多框架加入到 ONNX 生态中,但没有透露 TensorFlow 和 MXNet 是否在计划中。谷歌和亚马逊也还没有对此事表达态度,他们愿不愿意合作,尚属未知。
如何使用
初始版 ONNX 的代码、文件,已在GitHub上开源。Facebook 和微软表示将会持续改进 ONNX, 将会在不久的将来推出范例、工具、reference implementations 以及模型。
更多关于 ONNX 的信息可访问Facebook 官方博客。
via微软,venturebeat
最后更新:2017-10-08 01:54:02
上一篇:
关怀特殊人群:微软获包容性产品设计奖
下一篇:
微软将在十月底至少发布一款全新设备,猜猜会是什么呢?
获取insider preview版本出错 错误代码:0x800bfa07
hhukapi.dll,程序丢失怎么办
原来的【文本和其他项目大小调整的高级选项】界面咋没了?
无法获取Insider Preview 内部版本 错误代码 0x800bfa07
Windows 10,Windows Defender\Scans文件夹占用空间过大
windows10 *64 16215更新时下载过程中失败,代码 0x80240034
安装16226.1000更新时出现一些问题,但我们稍后会重试。
注册表值hklm\software\3fd8f8eac是什么
defender服务无法自动启动
Microsoft AntimalwareMicrosoft 反恶意软件 试图更新签名时遇到错误。
热门内容
Android Studio 3.0发布,支持 Kotlin;微软开源深度学习库MMLSpark;敏捷开发?真的假的?
微软Surface Note概念手机,三星Note 8的杀手?
微软2018财年Q1财报:游戏业务收入仅增长1%
微软高管解读财报:云计算业务发展良好 为客户创造巨大价值
聚焦场所体验与本土文化表达,微软Microsoft马其顿办公设计
微软也来搞折叠屏手机,有望明年推出,打开秒变平板电脑!
微软枪车球中“车”的代表,《极限竞速7》视频评测
微软的Kinect停产了,但它为今天的VR/AR做了很多贡献
微软一季度财报:游戏业务盈利增长显着
微软买断未来15年GE风力电厂能源:供应数据中心