abergeron opened a new pull request #5758:
URL: https://github.com/apache/incubator-tvm/pull/5758


   I finally had time to work on it again so this is a re-attempt at 
https://github.com/apache/incubator-tvm/pull/4318, which was reverted.
   
   ---
   
   For some context the tvm meaning for output_padding is to pad the output 
shape with zeros.
   
   For every other deep learning framework, this parameter name is used to 
disambiguate between the possible output shapes in the presence of padding 
(Unless they have an explicit output_shape parameter like tensorflow, which 
doesn't have output_padding).
   
   The current behaviour is in my mind redundant since you can always zero-pad 
manually if you need to. Also there is no way to compute the gradient of a 
convolution with strides that did not have the minimum possible input shape.
   
   The new behaviour makes this possible and brings us in-line with the other 
frameworks.
   
   ---
   
   I've rebased the code and added checks to make sure an invalid 
output_padding is refused.
   
   As for the comments by @icemelon9:
   
   1) The aformentioned check should cover that case and prevent going out of 
bounds.
   2) Since the preprocess function handles everything that we need 
output_padding for, we don't need to pass it forward.
   
   My best guess for why the CI didn't catch the cases is that going just a 
little bit out of bounds (like of by one) is unlikely to trigger any memory 
problems.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to