Check failed: (!axes.defined() || static_cast<int>(axes.size()) == ndim) is false: Dimension mismatch: axes has 3 elements, but data.ndim = 4

Hello, I’m trying to compile VITS (GitHub - jaywalnut310/vits: VITS: Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech) model using TVM. I converted VITS into ONNX then giving it to TVMC it throws error “Check failed: (!axes.defined() || static_cast(axes.size()) == ndim) is false: Dimension mismatch: axes has 3 elements, but data.ndim = 4”. I’m getting any trace for the node where this error is generated. I have also verified model using ONNXRuntime, It working fine on ONNXRuntime. I also tried to compile model dividing into parts, this gives me following error “NotImplementedError: Currently the operator ‘gather_nd’ is not supported.” Any solution for this ? I’m really stuck at this compilation.

Model file is here : vits.onnx - Google Drive

Hi. I noticed you mentioned TVMC, can you provide the command you’re using? That would simplify to understand what you’re actually doing.

I’m not very familiar with the ONNX support in TVM, but I can confirm the operator you referred is not supported, as it is missing from this list:

So the error you see you not really a bug in something that exists, but instead is lack of support because nobody did the work to support it yet.

HI, thank you for response, well I’m trying to compile model for such hardware platform, Here is the command, “python -m tvm.driver.tvmc compile --target --dump-code relay”. this is where I’m getting dimension mismatch issue, but about the unsupported operator “gather_nd” is what I got when I was trying to compile model dividing into parts to find root cause of dim mismatch, and there is no such node present in ONNX model op “gather_nd”.

Yes, the lack of gather_nd support seems to be the reason.

From here, you could either log an issue in TVM (Issues · apache/tvm · GitHub) and expect at some point, somebody is going to pick that work up. Alternatively, in case you’re in a rush, I’d recommend you trying to add support for that as a PR. Patches are always welcome.

I appreciate your answer, I would like to. Can you please look at another problem statement about dimension issue, I have checked with ONNX runtime and it is working good. But in TVMC it throws dimension mismatch issue. why it is happening? any solution for this?