-
Notifications
You must be signed in to change notification settings - Fork 84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nonzero->tranpose->gather/gatherND interaction #1886
Comments
@umangyadav I do have a branch that can "track" how much data is in the nonzero by modifying how we do padding but that would require that at runtime we perform other operands dynamically. @CharlieL7 is this something we should be looking at dynamic shape soley to fix then? |
This usage is a subset of dynamic shapes as a whole. |
Branch for the nonzero has been pushed up from the changes from earlier if we have any use for these. nonzero_track_data_position |
|
The reccuring pattern of Nonzero->transpose->gather/gatherND seems to be popping up in a few different networks.
his combination of operators is prefixed by some sort of boolean or shape operation in order to gather indices that meet a condition (equal, greater,less)
An issue arises here in the static shape case as nonzero is currently padded with zeros to the full shape size, as we assume the largest possible output shape based on input so we can correctly call compute_shape() . Gather will interpret the padded results as valid indices and as a result, gather on the appropriate data axes.
The current networks this has been seen are:
In the retinanet case, these resulting gathers are used to feed a topk and then are concated effecting accuracy
For point pillars we see the similar structure here:
The text was updated successfully, but these errors were encountered: