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
dnn CANN backend: fix some bugs and add some features #23319
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fengyuentau
added
bug
category: dnn
category:dnn_cann
CANN backend related issues in DNN module
labels
Mar 2, 2023
6 tasks
fengyuentau
changed the title
dnn CANN backend: support nodes with multiple outputs
dnn CANN backend: fix some bugs and add some features
Mar 8, 2023
vpisarev
approved these changes
Mar 9, 2023
fengyuentau
commented
Mar 10, 2023
Comment on lines
+809
to
+823
if (padMode == "SAME") | ||
{ | ||
for (int i = 0; i < pads_begin.size(); i++) { | ||
if (strides[i] <= kernel_size[i]) | ||
{ | ||
int pads_at_i = kernel_size[i] - 1 - (shape_x[i+2] - 1 + strides[i]) % strides[i]; | ||
pads_begin[i] = pads_at_i / 2; | ||
// if odd, add extra padding to the end for SAME_UPPER | ||
// or to the beginning for SAME_LOWER. Since here we cannot | ||
// identity SAME_UPPER and SAME_LOWER, extra padding is always | ||
// added to the end. | ||
pads_end[i] = pads_at_i - pads_begin[i]; | ||
} | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a temporal solution of "SAME pad mode to pads" calculation specifically for CANN. Will submit another pull request to fix for all backends if possible.
hanliutong
pushed a commit
to hanliutong/opencv
that referenced
this pull request
Mar 27, 2023
Related issue: opencv/opencv_zoo#136 Features added: - Support operators with multiple output: ONNX Split. - Support Slice without steps. Bugs fixed: - Wrong settings in ClipByValue (Relu6). - Wrong calculation of pads in convolution layer (It is wrong generally but only fixed specifically for CANN for now). ### Pull Request Readiness Checklist See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request - [x] I agree to contribute to the project under Apache 2 License. - [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV - [x] The PR is proposed to the proper branch - [x] There is a reference to the original bug report and related work - [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable Patch to opencv_extra has the same branch name. - [x] The feature is well documented and sample code can be built with the project CMake
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Related issue: opencv/opencv_zoo#136
Features added:
Bugs fixed:
Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
Patch to opencv_extra has the same branch name.