[Relay, TOPI] Support dynamic slicing on first few axes, keeping the rest static #8068
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR relaxes the constraint that
begin
,end
andstrides
params of dynamic strided slice to have the same length as input rank, and enable slicing on only first few axes (in particular, slicing along batch dim only).For example, the output shape of ONNX NMS is
(num_detection, 3)
. However, when translated to relay, it becomes(?, ?)
, since current dynamic stride slice always slices on all axes, even if some axes are conceptually static. This posed a problem whenGatherND
is applied to the output of ONNX NMS, since it requires the second dimension to be static:tvm/src/relay/op/tensor/transform.cc
Lines 3348 to 3349 in c999a84
ready for review @mbrookhart @jwfromm @kevinthesun @yongwww