微软已经宣布开放了ONNX Runtime,一款开源神经网络交换ONNX模型的开源高性能推理引擎,支持Linux,Windows和Mac操作系统。以下将向你介绍它。
使用ONNX Runtime的理由 ONNX Runtime是一个开放式架构,不断发展以适应和解决AI和深度学习中的最新发展和挑战。微软正运用其在内部使用ONNX Runtime进行Bing搜索,Bing Ads,Office生产力服务等。我们将使用ONNX标准使ONNX Runtime保持最新,支持所有ONNX版本以及未来的兼容性,同时保持与先前版本的向后兼容性。 ONNX Runtime一直致力于为机器学习中广泛且不断增长的使用场景提供最佳性能。重点关注以下3个核心领域: 1.运行任何ONNX模型。 2.高性能。 3.跨平台。
ONNX介绍
ONNX全称是Open Neural Network Exchange,是微软和Facebook发布的一个深度学习开发工具生态系统,旨在让AI开发人员能够随着项目发展而选择正确的工具。 ONNX所针对的是深度学习开发生态中最关键的问题之一,在任意一个框架上训练的神经网络模型,无法直接在另一个框架上用。开发者需要耗费大量时间精力把模型从一个开发平台移植到另一个。因此,如何实现不同框架之间的互操作性,简化从研究到生产的路径,成为了重中之重。 ONNX的工作原理是: 实时跟踪某个神经网络是如何在这些框架上生成的,接着,使用这些信息创建一个通用的计算图,即符合ONNX标准的计算图。这样做行得通,是因为在计算方面,这些框架产生的最终结果都非常接近,虽然更高级的表达不同。 ONNX目前支持Caffe2、PyTorch、Microsoft Cognitive Toolkit、Apache MXNet等工具。
ONNX Runtime介绍 1.与ONNX版本保持一致 ONNX Runtime提供对ONNX规范的全面支持,可用于运行基于ONNX v1.2.1及更高版本的所有模型。 截至2018年11月,ONNX Runtime支持最新发布的ONNX版本(1.3)。1.4发布后,ONNX Runtime将与更新的规范保持一致,增加对新运营商和其他功能的支持。 2.传统的ML支持 ONNX Runtime完全支持传统ML场景的ONNX规范的ONNX-ML配置文件。 3.高性能 可以将ONNX Runtime与CPU和GPU硬件配合使用。还可以将其他执行提供程序插入ONNX Runtime。通过许多图形优化和各种加速器,与其他运行时相比,ONNX Runtime通常可以提供更低的延迟和更高的效率。这提供了更平滑的端到端客户体验,并通过提高机器利用率降低了成本。 目前,ONNX Runtime支持CUDA和MKL-DNN(带有使用MKL构建的选项)以进行计算加速。 4.跨平台支持 ONNX Runtime支持Linux,Windows和Mac平台。 5.ONNX Runtime技术设计 ONNX Runtime采用可扩展的设计构建,使其具有多种功能,可支持各种高性能的模型。
相关链接
相关主题 |