TensorFlow?PyTorch?Paddle?AI工具库生态之争:ONNX将一统天下
AI诸多工具库工具库之间的切换,是一件耗时耗力的麻烦事。ONNX 即应运而生,使不同人工智能框架(如PyTorch、TensorRT、MXNet)可以采用相同格式存储模

作者:韩信子@ShowMeAI深度学习实战系列:https://www.showmeai.tech/tutorials/42本文地址:https://www.showmeai.tech/article-detail/319声明:版权所有,转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容

当今的很多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 的诞生是为了消除框架之间以及不同硬件生态系统之间互操作性的障碍。
什么是ONNX
ONNX 是一个开放规范,包含以下定义:
计算图模型存储文件格式
模型:是一个保存版本信息和元数据的非循环计算数据流图。
图:包含模型中数据流图的名称、形成图的计算节点列表、图的输入和输出。
计算节点:图中的每个计算节点都接受零个或多个定义类型、一个或多个定义类型的输出以及特定节点对其输入执行的操作类型。

标准数据类型
ONNX 作为标准支持以下数据类型列表:
张量类型:
- Int8、Int16、Int32、Int64
- Quantized Int
- uint8, uint16, uint32, uint64
- Float16, float, double
- Bool
- String
- Complex64, complex128
非张量类型:
- Sequence
- Map
- Operators (Built-in/ Custom)
算子/运算符
ONNX Graph 中的每个计算节点都执行特定的操作并产生一个或多个输出。 ONNX 标准定义了运算符,ONNX图支持的运算符列表也在不断拓展,并通过 ONNX Opsets 保持最新状态。每次 ONNX Opset 更新都可能新增算子支持或改进现有算子。
ONNX的目标
ONNX 的核心设计理念是:
- 互操作性
- 可移植性

如上图所示,ONNX 希望通过提供一个高效的接口将模型从一个框架转换到另一个框架,从而成为不同框架之间的中介。
下表中列出了将模型从一些最常见的AI框架转换为 ONNX 格式的工具。

ONNX实现与现状
实际上,要满足将模型从任何其他AI框架转换为ONNX一直是一个挑战。主要障碍之一是这些AI框架生态的高速发展与每次版本迭代带来的新支持(例如算子等)。
模型从一个框架到另一个框架的转换归结为能够表示原始模型的基础数学运算。下图显示了每个框架中定义的运算符数量。实际上,目前ONNX仅支持PyTorch所有算子的约13% ,一些使用低频 PyTorch 运算符构建的模型在转换时还是有困难。

不过像PyTorch这样的工具库里,包含的很多运算符有这一样或者类似的功能,是否需要完全同步支持也是一个问题。但ONNX开放了自定义运算符的功能,使得用户可以根据需要添加自己的功能。
即使目前 ONNX 还做不到完全支持和自由衔接所有AI工具框架,但凭借丰富的运算符集,ONNX已经可以描述来自各种框架的大多数 DNN 和 ML 模型。它的『函数』功能,使得用户可以把暂时不支持的复杂的操作符用更原始的操作符来表达 。
它带来了AI生态的自由流通,随着生态和社区的高速发展,相信在未来ONNX会成为AI生态中最终的桥梁之一,发挥巨大的作用。
参考资料
- ONNX 官方网站:https://onnx.ai/
- ONNX 官方Github地址:https://github.com/onnx/onnx

-
上一篇
那么,李彦宏说的百度AI工具箱里面都有啥?
李彦宏在不同场合多次介绍过,百度飞桨是自主研发、功能丰富、开源开放的产业级深度学习平台,相当于智能时代的操作系统。
只要拥有一些最基本的电脑操作基础,有一定文字理解能力,哪怕对算法一无所知,也能通过飞桨来设计和生成AI模型,让硬件实现智能化。李彦宏在大会现场说。
李彦宏向外界展示了百度飞桨平台的最新成绩,他引以为傲的飞桨已凝聚406万开发者,服务超过15.7万家企事业单位,覆盖数十个行业,创建了47.6万个模型。
但百度并没有止步于此。李彦宏说,百度AI工具箱里,另一件传说级的武器是大模型。
不久前,百度发布了大模型品牌文心。从2019年开始,百度就用海量的通识知识训练大模型,文心大模型是实现落地的知识增强大模型。目前,百度文心通过百度飞桨平台陆续对外开源开放,并已大规模应用于工业、能源、金融、通信、媒体、教育等行业。
在以上AI工具的背后,强大支撑是百度大脑。李彦宏说,百度大脑是AI技术积累和产业实践的集大成。经过多年研发沉淀,百度大脑不仅为创造者准备好了AI工具箱,更为社会和产业的智能化转型提供了技术大底座。
据介绍,百度大脑日调用量突破1万亿次,飞桨深度学习平台、昆仑芯片、以及语音、视觉、知识图谱、自然语言处理等核心AI技术和平台,已经成为助力各行各业的新型基础设施。
李彦宏认为,AI工具箱由创造者共同搭建,理应让创造者共同使用。 百度的使命是‘用科技让复杂的世界更简单’,我们提供技术平台,给没有技术资源和研发能力的机构和创造者,让大家去做擅长的事情,共同推动整个人工智能技术的发展。
在现场,李彦宏和大家探讨了一个面向未来的问题:AI将会为我们拓展哪些新的发展空间?
他从智能交通方面讲述了AI带来的新发展空间。他认为,智能交通可以解决三大问题:第一,减少90%道路安全事故。第二,系统解决拥堵问题。第三,自动驾驶和智能交通可以助力碳减排。
李彦宏说百度提供“AI工具箱”,里面都有啥?
来源:中国经济网
-
下一篇
最棒的AI工具,用于生成文本、语音、视频、图像、笔记、应用等!自从ChatGPT问世以来,我尝试了许多不同用途的AI工具。
在这篇文章中,我将与大家分享我认为最好的AI工具。我将为每个工具留下简短的评价,并提供链接以获取完整指南,以便进一步了解它们。
下面是我精选的10大AI工具。
1. Adobe Firefly:图像与文字效果生成
Adobe Firefly是一款将整合于Adobe产品如Photoshop中的生成性AI模型,专注于图像和文本效果的生成。
它的工作原理类似于Midjourney,但你无需使用Discord或了解此类平台的任何知识即可开始。你只需要登录或注册Adobe帐户,即可使用Adobe Firefly的测试版。
我最喜欢的功能无疑是Generative Fill,因为它可以让你在照片中添加物体,更改背景等。
要了解更多关于在Photoshop中使用Firefly的信息,请查看此完整指南。
请注意,Adobe Firefly目前处于测试阶段。如果你想在Photoshop中尝试它,可以去官网下载试用。
2. Notion AI:更高效的笔记和文档
如果你是Notion的用户,那么你一定会喜欢Notion AI。Notion AI将记事应用提升到新的水平。你只需输入提示即可在Notion应用中生成博客文章或社交媒体文章的文本。
下面是一个简短的演示。
来源:Notion
但这还不是全部!除了生成文本,Notion AI还有许多AI支持的功能。它可以帮助你总结文本,修复拼写和语法错误,并将文本翻译成多种语言。
3. NVIDIA Broadcast:AI增强的语音和视频
NVIDIA Broadcast是一个AI工具,非常适合那些想要提升视频会议和语音通话质量的人。
这个工具有很多由AI驱动的功能。下面是我最喜欢的几个:
- 噪音消除
- 虚拟背景
- 房间回声消除
- 眼神接触(内向者会喜欢的功能)
一段视频胜过千言万语,所以下面是这些功能如何工作的快速演示。
不幸的是,这个工具要求你有Nvidia RTX显卡。如果你是Windows用户,请查看
此指南以验证你的电脑拥有何种显卡,并按照步骤安装此工具。
4. Canva AI:图像生成器、文本生成器、神奇设计和照片编辑器
想象一下,将一堆AI工具集成在一个平台上 —— 这就是Canva AI提供的。
如果你不熟悉Canva,Canva是一个创建社交媒体图形和演示文稿的工具,而现在借助AI,Canva变得更加强大!
首先,与Midjourney一样,Canva现在提供图像生成。你只需输入提示,图像将在几秒钟内在Canva中生成!
我试用了100个AI工具,这些是最佳之选
暑期创作大赛