``` class GatherND(OnnxOpConverter): """Operator converter for GatherND."""
@classmethod def _impl_common(cls, data, indices, batch_dims=0): indices_dims = len(infer_shape(indices)) indices_shape = infer_shape(indices) indices = _op.transpose(indices, axes=[-1] + list(range(indices_dims - 1))) index_rank = indices_shape[-1] return _op.gather_nd(data, indices, batch_dims, index_rank) ``` ## Observation In `python/tvm/relay/onnx.py`, I found `_op.transpose()` was inserted before real `_op.gather_nd` operator. Actually, other OnnxOpConverters, like `ScatterND` have same or more relative insertions before the real ops. In test_cases however, `test_op_level3.py`, input data are fed into `relay.gather_nd` directly. ## Question Is this `_op.transpose` necessary? What would happen to dataflow if we remove it? Thanks! --- [Visit Topic](https://discuss.tvm.apache.org/t/relay-frontend-why-transpose-before-gathernd/10657/1) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/be3c1b85c839320860ac34c565105b2929c59395495b54164f7bde0334e1661f).