ONNX

ONNX（）是一种针对机器学习所设计的开放式的文件格式，用于存储训练好的模型。它使得不同的人工智能框架（如Pytorch、MXNet）可以采用相同格式存储模型数据并交互。 ONNX的规范及代码主要由微软、亚马逊、Facebook和IBM等公司共同开发，以开放源代码的方式托管在Github上。  目前官方支持加载ONNX模型并进行推理的深度学习框架有： Caffe2、PyTorch、MXNet、ML.NET、TensorRT 和 Microsoft CNTK，并且 TensorFlow 也非官方的支持ONNX。

 历史 
ONNX最初被命名为Toffee，并且由脸书内发布PyTorch的团队开发。 在2017年，ONNX第一个正式版本由脸书与微软共同发布。在此之后，IBM、华为、英特尔、AMD、Arm和高通都宣布计划支持ONNX。

2017年10月，微軟宣布將在該計畫中加入其認知工具包Microsoft Cognitive Toolkit和Project Brainwave平台。

2019年11月，ONNX被Linux基金會AI接納為研究生課程。

2020年10月，Zetane Systems成為ONNX生態系統的成員。

 意圖 
該倡議的目標是：

 框架互通性 
讓開發人員更輕鬆地在框架之間移動，其中一些框架可能更適合開發過程的特定階段，例如快速訓練、網路架構靈活性或行動裝置上的推理。

 共享優化
允許硬體供應商和其他人透過針對ONNX表示同時提高多個框架的人工神经网络的效能。

 ONNX Runtime 
ONNX Runtime（縮寫：ORT "ONNX Runtime (ORT)" Welcome to ONNX Runtime (ORT) . ONNX Runtime.）是一個開源項目，旨在加速各種環境中 ONNX 模型的推理和學習"ONNX Runtime is an open source project that is designed to accelerate machine learning across a wide range of frameworks, operating systems, and hardware platforms." About . ONNX Runtime.。無論框架、作業系統或硬體為何，ONNX模型都可以透過單一執行時間API使用"It enables acceleration of machine learning inferencing across all of your deployment targets using a single set of API." About . ONNX Runtime.。它還根據部署環境自動進行最佳化"ONNX Runtime automatically parses through your model to identify optimization opportunities and provides access to the best hardware acceleration available." About . ONNX Runtime.。 ONNX Runtime的設計策略是實現加速器運行時抽象化和效能最佳化，並透過自動劃分ONNX模型並使用最佳加速器執行子模型來實現這一目標"Design principles    ONNX Runtime abstracts custom accelerators and runtimes to maximize their benefits across an ONNX model. ... ONNX Runtime partitions the ONNX model graph into subgraphs that align with available custom accelerators and runtimes." About . ONNX Runtime.。

 参考文献 

 外部鏈接 



Category:机器学习
Category:文件格式