首页
首页 >> 科技咖 >> 正文

微软开源ONNX Runtime,想用什么深度学习框架任你选!

日期:2018-12-06 14:04:46 来源:互联网 编辑:小狐 阅读人数:462

微软开源ONNX Runtime,想用什么深度学习框架任你选!

新智元导读微软宣布将多平台通用ONNX机器学习引擎开源,此举将让机器学习框架,向着机器学习框架的标准化和性能优化方向迈进了一大步。此前,为了推进AI框架标准化,更好地支持PyTorch和TensorFlow等框架,微软甚至降低了对自家CNTK框架的宣传调门,可谓“用心良苦”

当地时间12月4日,微软在GitHub上宣布ONNX Runtime开源 。

ONNX Runtime是适用于Linux,Windows和Mac上ONNX格式的机器学习模型的高性能推理引擎。

微软开源ONNX Runtime,想用什么深度学习框架任你选!

ONNX 是微软与Facebook和AWS共同的深度学习和传统机器学习模型的开放格式。ONNX格式是开放式生态的基础,使人工智能技术更易于访问,而且可以为不同人群创造价值:

人员可以为自己机器学习任务选择合适的框架,框架可以集中精力推出创新,提高框架的性能。对于硬件供应商来说,也可以简化神经网络计算的复杂度,实现优化算法。

过去20多年来,微软一直在进行人工智能研究,并将机器学习和深度神经网络整合到旗下众多产品和服务中。由于团队使用许多不同的培训框架并针对不同的部署选项,因此确实需要统一这些分散的解决方案,以便快速,简单地操作模型。

此次开源的ONNX Runtime为这个问题了解决方案。该工具为数据科学家在选择的框架内训练和调整模型了更高的灵活性,并在云端和产品设计中以高性能打造这些模型。

微软开源ONNX Runtime,想用什么深度学习框架任你选!

ONNX引擎是Windows ML组件的关键部分。微软正在将这种机器学习界面纳入到Windows 10中,让人员在自己的Windows应用程序上使用训练过的机器学习模型。 Windows ML推理引擎可以在Windows设备上对这些模型进行本地评估,人员无需将模型放到云中运行。

ONNX Runtime有什么用?

ONNX是微软公开推出的首款推理机,完整支持ONNX 1.2和 ONNX机器学习的更高版本。这意味着ONNX Runtime直接随着ONNX的标准进步,实现对一大批AI模型和技术突破的支持。

ONNX Runtime在设计上是轻量级和模块化的,CPU的构建只有几M字节。可扩展架构、优化硬件加速器,降低计算延时,提升计算效率。

英伟达、英特尔、高通等巨头纷纷支持

很多业界领先的企业都在积极将自己的技术与ONNX Runtime实现集成和整合,使自己的服务能够完整支持ONNX规范,同时实现性能的最优化。

微软和英特尔正在合作,将nGraph编译器集成为ONNX Runtime的执行程序。nGraph编译器能够通过应用非设备特定和设备特定的优化来实现现有和未来的硬件加速。与原生框架相比,使用nGraph Compiler执行CPU推理任务可将性能提升45倍。

英伟达正在努力将TensorRT与ONNX Runtime实现整合,为在英伟达的GPU上部署快速增长的模型和应用程序简便的工作流程,同时实现最佳性能。

NVIDIA TensorRT包括一个高性能的推理优化器和运行时,可以在推荐器,自然语言处理和图像/处理等应用程序中以最小的延迟极高的吞吐量。

ONNX的另一个早期支持者是高通,也支持ONNX Runtime。高通AI业务高级主管Gary Brotman表示:ONNX Runtime的推出和开源是微软提升跨设备类别框架的互操作性,实现标准化和性能优化的积极一步,我们希望人员欢迎在骁龙移动平台上支持ONNX Runtime。

业内领先的物联网芯片制造商恩智浦(NXP)最近也宣布支持ONNX Runtime。“我们希望,用户在众多机器学习框架中进行选择时能够拥有最大的灵活性和自由度。”

恩智浦AI技术中心负责人Markus Levy表示。“我们很高兴能够通过支持微软在我们的平台上发布ONNX Runtime,让机器学习者客户群能够享受ONNX带来的好处。”

如何使用ONNX Runtime

首先,你需要建立一个ONNX模型。没有ONNX模型?没问题。ONNX的优点就是能够通过众多工具实现框架的互操作性 。你可以直接从ONNX Model Zoo获得ResNet和TinyYOLO等热门模型的预训练版本。

你还可以使用Azure Custom Vision Cognitive Service创建自己的自定义计算机视觉模型。 如果已经拥有TensorFlow、Keras、Scikit-Learn或CoreML格式的模型,可以使用我们的开源转换器(ONNX MLTools和TF2 ONNX)进行转换。

可以使用Azure机器学习服务训练新模型并保存为ONNX格式。

要使用ONNX Runtime,只需安装所需平台和所选语言的软件包,或者从源代码创建。ONNX Runtime支持 CPU 和 GPU (CUDA) 以及兼容Linux、Windows和Mac上的Python、C#和C接口。具体的安装说明可以在GitHub中获取。

你可以直接从源或预编译的二进制文件将ONNX Runtime集成到代码中,一种简单的操作方法是使用Azure机器学习为应用程序部署服务,以待调用。

Github:

本文相关词条概念解析:

框架

框架(framework)是一个基本概念上的结构,用于去解决或者处理复杂的问题。这个广泛的定义使用的十分流行,尤其在软件概念。框架也能用于机械结构。

开源

开源(OpenSource,开放源码)被非盈利软件组织(美国的OpenSourceInitiative协会)注册为认证标记,并对其进行了正式的定义,用于描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。人们需要知道的是组成软件的包和它们的许可证是开放的源代码。此外,单独的许可证可能不是"货物",它由美国专利和商标局注册认证标志。但是软件的作者显然必须能够自我认证、在适当的时刻确认他们的软件是按照OSICertified的开放源代码方式发布的。

网友评论
  • 自己的旋律
    在投入了生产的计算机视觉系统的工具上,Caffe是无可争议的领导者
    2018-12-18 09:50 21
  • 徐太太太太
    这个图被内部优化和编译成可执行的C++代码
    2018-12-10 08:18 6
  • 路遥远zeer
    我的建议是,如果你是初学者,使用Keras,如果不是初学者,也可以使用它
    2018-12-11 10:56 11
  • 北纬66度小
    Python带来的开发速度和C++带来的执行速度
    2018-12-18 11:21 35