From 4eb54ff9a5b38532e27cf43047e9e0e8bf6331c6 Mon Sep 17 00:00:00 2001 From: Chun-Wei Chen Date: Wed, 29 Jun 2022 06:53:31 -0700 Subject: [PATCH] Add warning about future computation change for ConvTranspose with auto_pad (#11984) * Add warning about future computation change for Convtranspose with auto_pad * improve msg * update TODO to make lint happy * update more contents for warning and add if * valid was not infected * move it into kernel registration * parse auto_pad myself * try to use conv_transpose_attrs_.auto_pad directly --- onnxruntime/core/providers/cpu/nn/conv_transpose.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/onnxruntime/core/providers/cpu/nn/conv_transpose.h b/onnxruntime/core/providers/cpu/nn/conv_transpose.h index 49c174969b..53025e3b13 100644 --- a/onnxruntime/core/providers/cpu/nn/conv_transpose.h +++ b/onnxruntime/core/providers/cpu/nn/conv_transpose.h @@ -25,7 +25,15 @@ namespace onnxruntime { template class ConvTranspose : public OpKernel { public: - ConvTranspose(const OpKernelInfo& info) : OpKernel(info), conv_transpose_attrs_(info) {} + ConvTranspose(const OpKernelInfo& info) : OpKernel(info), conv_transpose_attrs_(info) { + if (conv_transpose_attrs_.auto_pad == AutoPadType::SAME_UPPER || + conv_transpose_attrs_.auto_pad == AutoPadType::SAME_LOWER) { + // TODO(jcwchen): #9740 ORT 1.13 will correct the logic by switching them to meet ONNX spec + LOGS_DEFAULT(WARNING) << "The existing bug in the padding distribution for auto_pad type" + << " SAME_UPPER/SAME_LOWER will be fixed in next ORT 1.13 release and hence the" + << " results of ConvTranspose operator using the above auto_pad type(s) will be different."; + } + } Status PrePack(const Tensor& tensor, int input_idx, AllocatorPtr alloc, /*out*/ bool& is_packed,