From 02302c9eda071fb6f19a36445fb0dad96389d334 Mon Sep 17 00:00:00 2001 From: luyaor Date: Fri, 27 Aug 2021 23:48:56 +0800 Subject: [PATCH 1/5] Set default value of p in LpPool as 2 --- python/tvm/relay/frontend/onnx.py | 2 +- tests/python/frontend/onnx/test_forward.py | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/python/tvm/relay/frontend/onnx.py b/python/tvm/relay/frontend/onnx.py index 5471f67ea106..44cb5b930b99 100644 --- a/python/tvm/relay/frontend/onnx.py +++ b/python/tvm/relay/frontend/onnx.py @@ -945,7 +945,7 @@ def _impl_v1(cls, inputs, attr, params): else: attr["layout"] = onnx_default_layout(dims=(len(input_shape) - 2), op_name="LpPool") - p = _expr.const(attr["p"], dtype) + p = _expr.const(attr.get("p", 2), dtype) reci_p = _expr.const(1.0 / attr["p"], dtype) data = _op.power(data, p) diff --git a/tests/python/frontend/onnx/test_forward.py b/tests/python/frontend/onnx/test_forward.py index 9e0eb1f75217..33c20d7c10e3 100644 --- a/tests/python/frontend/onnx/test_forward.py +++ b/tests/python/frontend/onnx/test_forward.py @@ -3185,15 +3185,18 @@ def verify_max_roi_pool(x_shape, rois_shape, pooled_shape, spatial_scale, out_sh @tvm.testing.parametrize_targets def test_lppool(target, dev): def verify_lppool(x_shape, kernel_shape, p, strides, pads, out_shape, auto_pad="NOTSET"): + kwargs = {} + if p is not None: + kwargs["p"] = p if pads is None: pool_node = helper.make_node( "LpPool", inputs=["x"], outputs=["y"], kernel_shape=kernel_shape, - p=p, auto_pad=auto_pad, strides=strides, + **kwargs, ) else: pool_node = helper.make_node( @@ -3201,9 +3204,9 @@ def verify_lppool(x_shape, kernel_shape, p, strides, pads, out_shape, auto_pad=" inputs=["x"], outputs=["y"], kernel_shape=kernel_shape, - p=p, pads=pads, strides=strides, + **kwargs, ) graph = helper.make_graph( @@ -3296,6 +3299,15 @@ def verify_lppool(x_shape, kernel_shape, p, strides, pads, out_shape, auto_pad=" out_shape=[1, 1, 16, 16, 16], auto_pad="SAME_UPPER", ) + # Pool2D with empty p + verify_lppool( + x_shape=[1, 1, 32, 32], + kernel_shape=[3, 3], + p=None, + strides=[1, 1], + pads=[1, 1, 1, 1], + out_shape=[1, 1, 32, 32], + ) def verify_rnn( From 7bbf39c296dab7f982fe34ee4497afe25dcbed8f Mon Sep 17 00:00:00 2001 From: Luyao Ren Date: Wed, 1 Sep 2021 01:09:43 +0800 Subject: [PATCH 2/5] Update test_forward.py Fix bug in test. --- tests/python/frontend/onnx/test_forward.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/python/frontend/onnx/test_forward.py b/tests/python/frontend/onnx/test_forward.py index 33c20d7c10e3..39034e519676 100644 --- a/tests/python/frontend/onnx/test_forward.py +++ b/tests/python/frontend/onnx/test_forward.py @@ -3306,7 +3306,7 @@ def verify_lppool(x_shape, kernel_shape, p, strides, pads, out_shape, auto_pad=" p=None, strides=[1, 1], pads=[1, 1, 1, 1], - out_shape=[1, 1, 32, 32], + out_shape=[1, 1, 31, 31], ) From 1cfe9cec0115a78de301132c95331cd3dfc55da5 Mon Sep 17 00:00:00 2001 From: Luyao Ren Date: Thu, 2 Sep 2021 00:01:34 +0800 Subject: [PATCH 3/5] Update test_forward.py update with correct shape. --- tests/python/frontend/onnx/test_forward.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/python/frontend/onnx/test_forward.py b/tests/python/frontend/onnx/test_forward.py index 39034e519676..33c20d7c10e3 100644 --- a/tests/python/frontend/onnx/test_forward.py +++ b/tests/python/frontend/onnx/test_forward.py @@ -3306,7 +3306,7 @@ def verify_lppool(x_shape, kernel_shape, p, strides, pads, out_shape, auto_pad=" p=None, strides=[1, 1], pads=[1, 1, 1, 1], - out_shape=[1, 1, 31, 31], + out_shape=[1, 1, 32, 32], ) From 4b8055669652e046369cf64be10fd7387a3468ab Mon Sep 17 00:00:00 2001 From: Luyao Ren Date: Thu, 2 Sep 2021 10:10:21 +0800 Subject: [PATCH 4/5] Update onnx.py --- python/tvm/relay/frontend/onnx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/tvm/relay/frontend/onnx.py b/python/tvm/relay/frontend/onnx.py index 44cb5b930b99..696c541cbc5a 100644 --- a/python/tvm/relay/frontend/onnx.py +++ b/python/tvm/relay/frontend/onnx.py @@ -946,7 +946,7 @@ def _impl_v1(cls, inputs, attr, params): attr["layout"] = onnx_default_layout(dims=(len(input_shape) - 2), op_name="LpPool") p = _expr.const(attr.get("p", 2), dtype) - reci_p = _expr.const(1.0 / attr["p"], dtype) + reci_p = _expr.const(1.0 / attr.get("p", 2), dtype) data = _op.power(data, p) out = AttrCvt( From ad54b5f05c5c3f134a8ff239ced14be07a77f81b Mon Sep 17 00:00:00 2001 From: Luyao Ren Date: Thu, 2 Sep 2021 16:21:03 +0800 Subject: [PATCH 5/5] Update python/tvm/relay/frontend/onnx.py Co-authored-by: Wuwei Lin --- python/tvm/relay/frontend/onnx.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/python/tvm/relay/frontend/onnx.py b/python/tvm/relay/frontend/onnx.py index 696c541cbc5a..170784bfb007 100644 --- a/python/tvm/relay/frontend/onnx.py +++ b/python/tvm/relay/frontend/onnx.py @@ -945,8 +945,9 @@ def _impl_v1(cls, inputs, attr, params): else: attr["layout"] = onnx_default_layout(dims=(len(input_shape) - 2), op_name="LpPool") - p = _expr.const(attr.get("p", 2), dtype) - reci_p = _expr.const(1.0 / attr.get("p", 2), dtype) + p_value = attr.get("p", 2) + p = _expr.const(p_value, dtype) + reci_p = _expr.const(1.0 / p_value, dtype) data = _op.power(data, p) out = AttrCvt(