I tried to convert a tensorflow model containing conv1d layers with 'groups' parameter > 2, to onnx using tf2onnx. When I tried to read the onnx model us onnxruntime, I get the below error,
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
The same conversion works when the 'groups' parameter is not set in the tensorflow conv1d layers.
I wonder if this is a compatibility issue with onnx.
As you can check issue#1864 is still open. So, the TensorFlow op
PartitionedCallis unsupported for opset 15. Take a look at the troubleshooting page when you face the issue tensorflow op is not supported.Now, at line#46 of Conv1D class in Keras it is mentioned that:
filtersmust both be divisible bygroups.So, just make sure this is not the problem here - as you mentioned:
This means the
groupsparameter is then implicitly set to the default value1and therefore Input channels andfiltersare divisible bygroups.Finally, make sure to use the largest opset compatible with your application and check the ONNX opset support for compatibility which might be the actual culprit here as per your thought: