TensorFlow?PyTorch?Paddle?AI工具库生态之争:ONNX将一统天下( 二 )


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

TensorFlow?PyTorch?Paddle?AI工具库生态之争:ONNX将一统天下

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

TensorFlow?PyTorch?Paddle?AI工具库生态之争:ONNX将一统天下

文章插图

推荐阅读