具有组参数集的 conv1d 层模型的 tf2onnx 转换

问题描述 投票:0回答:1

我尝试使用 tf2onnx 将包含“groups”参数 > 2 的 conv1d 层的张量流模型转换为 onnx。当我尝试在 onnxruntime 上读取 onnx 模型时,出现以下错误,

This is an invalid model. In Node, ("sequential/conv1d/PartitionedCall", PartitionedCall, "", -1) : ("conv1d_input": tensor(float),"sequential/conv1d/ReadVariableOp:0": tensor(float),) -> ("sequential/conv1d/PartitionedCall:0",) , Error No Op registered for PartitionedCall with domain_version of 15

当张量流 conv1d 层中未设置“groups”参数时,相同的转换将起作用。

我想知道这是否是 onnx 的兼容性问题。

tensorflow onnx onnxruntime conv1d tf2onnx
1个回答
0
投票

您可以检查issue#1864仍然处于开放状态。因此,Opset 15 不支持 TensorFlow 操作

PartitionedCall
。当您遇到问题不支持张量流操作时,请查看故障排除页面。

现在,Keras 中 Conv1D 类的第 #46 提到:

  • 输入通道和
    filters
    都必须能被
    groups
    整除。

所以,只要确保这不是这里的问题 - 正如您提到的:

当张量流 conv1d 层中未设置“groups”参数时,相同的转换将起作用。

这意味着

groups
参数将隐式设置为默认值
1
,因此输入通道和
filters
可以被
groups
整除。

最后,请确保使用与您的应用程序兼容的最大opset并检查ONNX opset支持的兼容性,根据您的想法,这可能是真正的罪魁祸首:

我想知道这是否是 onnx 的兼容性问题。

© www.soinside.com 2019 - 2024. All rights reserved.