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.
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?