【问题标题】:Import operators from ai.onnx.ml with Python使用 Python 从 ai.onnx.ml 导入运算符
【发布时间】:2020-09-25 16:26:23
【问题描述】:

我阅读了https://github.com/onnx/onnx/blob/master/docs/Operators-ml.md 的 ONNX ML 文档,但不知道如何将这些函数导入我的项目。我生成了几个上游节点来进行一些数据拆分和缩放,我想将其中一个 ML 运算符添加为我的 ONNX 图中的另一个节点。

看起来这应该非常简单,但对于我的生活,我看不到它是如何完成的。

我原以为语法会是这样的:

nodeX = onnx.helper.make_node(
    'Scaler',
    inputs=['Q2'],
    outputs=['Q22'],
    scale=5.0,
    offset = 12.0
)

但是,我收到以下错误: 节点中的错误::没有为域版本为 12 的 Scaler 注册操作

所以它似乎无法识别 ML 运算符。根据https://github.com/onnx/onnx/blob/master/docs/Overview.md 的文档,我将环境变量设置为 ONNX_ML=1,并尝试重新安装,但没有帮助。

【问题讨论】:

    标签: python machine-learning onnx


    【解决方案1】:

    显然需要两件事。首先 - 创建节点时指定运营商域:

    nodeX = onnx.helper.make_node(
        'Scaler',
        inputs=['Q2'],
        outputs=['Q22'],
        scale=5.0,
        offset = 12.0,
        domain='ai.onnx.ml'
    )
    

    第二——创建模型时导入域:

    model = onnx.helper.make_model(
        graph,
        opset_imports=[
            onnx.helper.make_opsetid('ai.onnx.ml', 1), 
            onnx.helper.make_opsetid('', 14)],
    )
    

    【讨论】:

      猜你喜欢
      • 2021-10-28
      • 2019-12-20
      • 2018-04-09
      • 2018-07-06
      • 2023-01-19
      • 2013-12-12
      • 1970-01-01
      • 2014-03-30
      • 2018-04-26
      相关资源
      最近更新 更多