From dfb2b2ce492a09c13a68c0ee9e433ed848c28e1a Mon Sep 17 00:00:00 2001 From: Megvii Engine Team Date: Wed, 30 Dec 2020 17:57:37 +0800 Subject: [PATCH] fix(dnn): change pooling window size smaller than padding constraint to log_error GitOrigin-RevId: c3cda68f6d5a5b4f7a8083d0df7423e83c2b7aa6 --- dnn/src/common/pooling.cpp | 10 ++++++---- src/opr/test/dnn/pooling.cpp | 11 ----------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/dnn/src/common/pooling.cpp b/dnn/src/common/pooling.cpp index 634aed4d8..6eb381fdd 100644 --- a/dnn/src/common/pooling.cpp +++ b/dnn/src/common/pooling.cpp @@ -92,10 +92,12 @@ void PoolingBase::deduce_layout_fwd(const TensorLayout& src, size_t sw = this->param().stride_w; size_t ph = this->param().pad_h; size_t pw = this->param().pad_w; - megdnn_assert(ph < fh && pw < fw, - "pooling padding size (%zu %zu) should not be bigger than " - "window size (%zu %zu)", - pw, ph, fw, fh); + if (ph < fh && pw < fw) { + megdnn_log_error( + "pooling padding size (%zu %zu) should not be bigger than " + "window size (%zu %zu), it only can be used in CaffePooling", + pw, ph, fw, fh); + } infer_conv_shape2d(ih, iw, fh, fw, sh, sw, ph, pw, oh, ow); if (param().format == Param::Format::NCHW) { dst = TensorLayout(TensorShape({n, c, oh, ow}), src.dtype); diff --git a/src/opr/test/dnn/pooling.cpp b/src/opr/test/dnn/pooling.cpp index 16ffe1a35..8defe15b2 100644 --- a/src/opr/test/dnn/pooling.cpp +++ b/src/opr/test/dnn/pooling.cpp @@ -104,17 +104,6 @@ TEST(TestOprDNN, PoolingBackward) } } -TEST(TestOprDNN, PoolingForwardPadding) { - auto graph = ComputingGraph::make(); - Param param(Param::Mode::MAX, 2, 2, 2, 2, 2, 2); - SymbolVarArray symbol_inputs; - HostTensorGenerator<> gen; - auto host_tensor = gen({2, 3, 23, 24}); - symbol_inputs.push_back( - mgb::opr::Host2DeviceCopy::make(*graph, host_tensor)); - ASSERT_THROW(opr::Pooling::make(symbol_inputs[0], param), MegDNNError); -} - } // anonymous namespace // vim: syntax=cpp.doxygen foldmethod=marker foldmarker=f{{{,f}}} -- GitLab