我尝试使用 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 的兼容性问题。
您可以检查issue#1864仍然处于开放状态。因此,Opset 15 不支持 TensorFlow 操作
PartitionedCall
。当您遇到问题不支持张量流操作时,请查看故障排除页面。
现在,Keras 中 Conv1D 类的第 #46 提到:
filters
都必须能被 groups
整除。所以,只要确保这不是这里的问题 - 正如您提到的:
当张量流 conv1d 层中未设置“groups”参数时,相同的转换将起作用。
这意味着
groups
参数将隐式设置为默认值 1
,因此输入通道和 filters
可以被 groups
整除。
最后,请确保使用与您的应用程序兼容的最大opset并检查ONNX opset支持的兼容性,根据您的想法,这可能是真正的罪魁祸首:
我想知道这是否是 onnx 的兼容性问题。