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]
