microsoft/onnxscript

ONNX Script enables developers to naturally author ONNX functions and models using a subset of Python.

解决的问题

ONNX Script 简化了 ONNX 模型的编写、调试和优化过程。开发者无需手动构建复杂的 ONNX 图,而是可以使用简洁的基于 Python 的语法来定义函数和模型,然后将其转换为有效的 ONNX 图。

工作原理

该项目提供了一个转换器,它遍历 Python 抽象语法树(AST),将 Python 函数(使用 @script 装饰器标记)转换为 ONNX 图。它还支持反向过程,将 ONNX 模型转换回 ONNX Script 以提高可读性。为了辅助调试,它包含一个运行时垫片,允许使用 ONNX Runtime 或纯 Python 参考评估器对这些函数进行“急切模式”评估。

适用人群

需要创建或修改 ONNX 模型的 AI 开发人员和 ML 工程师,他们希望找到一种比原始图构建更自然、更易于调试且更具表现力的定义方式。

亮点

  • Pythonic 编写: 使用 Python 的子集定义 ONNX 函数,提供更简洁和简单的体验。
  • 双向转换: 支持将 Python 函数转换为 ONNX 图,反之亦然。
  • 急切模式: 启用函数的即时评估,以便更快地调试和验证中间结果。
  • 优化工具: 包含用于常量折叠和死代码消除的优化器,以及基于用户定义规则替换特定图模式的改写器。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目