文章插图
作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 本文地址:https://www.showmeai.tech/article-detail/319 声明:版权所有 , 转载请联系平台与作者并注明出处 收藏ShowMeAI查看更多精彩内容
文章插图
【TensorFlow?PyTorch?Paddle?AI工具库生态之争:ONNX将一统天下】当今的很多AI算法落地 , 我们都需要依赖特定的机器学习框架 , 现在比较热门的 AI 工具库如 TensorFlow 和 PyTorch 都出自大厂 , 并且有很好的生态和资源 , 借助它们我们可以很快速完成典型的一些任务 , 如图像分类或自然语言处理 。
然而 , 工具库和工具库之间的相互切换 , 是一件很麻烦的事情 , 比如某公司团队开发主要使用TensorFlow , 然而现在有一个深度算法 , 需要使用 caffe2 部署在移动设备上 , 那我们需要用 caffe2 重写模型重新训练 , 这是一个非常耗时耗力的过程 。
ONNX 便应运而生 , TensorFlow、Caffe2、PyTorch、paddlepaddle、Microsoft Cognitive Toolkit、Apache MXNet 等主流框架都对 ONNX 有着不同程度的支持 。这就便于了我们的算法及模型在不同的框架之间的迁移 。
文章插图
ONNX(Open Neural Network Exchange)是一种针对机器学习所设计的开放式的文件格式 , 用于存储训练好的模型 。它使得不同的人工智能框架(如PyTorch , TensorRT , MXNet)可以采用相同格式存储模型数据并交互 。ONNX的规范及代码主要由微软 , 亚马逊 , Facebook 和 IBM 等公司共同开发 , 以开放源代码的方式托管在Github上 。
ONNX 官方资源
- ONNX 官方网站:https://onnx.ai/
文章插图
- ONNX 官方Github地址:https://github.com/onnx/onnx
文章插图
- 支持的工具库:
文章插图
为什么需要ONNX机器学习/深度学习的出现和蓬勃发展的背景下 , 深度学习/机器学习模型训练与执行的框架/库的数量呈指数级增长 。有两大原因促成这个增长:
- 硬件供应商开发了自己的框架以实现垂直集成并使其更容易为他们的硬件开发模型
- 开发自己的框架以针对特定用例实现最佳性能的软件供应商
文章插图
深度学习框架数量的激增导致整个AI生态系统碎片化 , 也使跨框架或硬件生态系统的工作变得困难 。ONNX 的诞生是为了消除框架之间以及不同硬件生态系统之间互操作性的障碍 。
什么是ONNXONNX 是一个开放规范 , 包含以下定义:
计算图模型存储文件格式模型:是一个保存版本信息和元数据的非循环计算数据流图 。
图:包含模型中数据流图的名称、形成图的计算节点列表、图的输入和输出 。
计算节点:图中的每个计算节点都接受零个或多个 定义类型、一个或多个定义类型的输出以及特定节点对其输入执行的操作类型 。
经验总结扩展阅读
- pytorch、paddlepaddle等环境搭建 深度学习环境搭建常用网址、conda/pip命令行整理
- Pytorch模型量化
- Tensorflow Lite从入门到精通
- PaddleOCR-EAST
- paddle&蜜度 文本智能较对大赛经验分享(17/685)
- tensorflow-gpu版本安装及深度神经网络训练与cpu版本对比
- 使用Pytorch进行多卡训练
- 附Anaconda安装包 Anaconda安装和卸载+虚拟环境Tensorflow安装以及末尾问题大全,这一篇就够了!!!
- 了解Pytorch|Get Started with PyTorch