diff --git a/python/paddle/fluid/tests/unittests/test_adaptive_max_pool3d.py b/python/paddle/fluid/tests/unittests/test_adaptive_max_pool3d.py index 0f4a89c476168ae7aba86f74d457b1e010c51a37..5657624f2f48c900d49af326a78fd6f6e7ca61d8 100755 --- a/python/paddle/fluid/tests/unittests/test_adaptive_max_pool3d.py +++ b/python/paddle/fluid/tests/unittests/test_adaptive_max_pool3d.py @@ -164,7 +164,7 @@ class TestAdaptiveMaxPool3DAPI(unittest.TestCase): assert np.allclose(res_5, self.res_5_np) - def test_dynamic_graph(self): + def func_dynamic_graph(self): for use_cuda in ([False, True] if core.is_compiled_with_cuda() else [False]): place = paddle.CUDAPlace(0) if use_cuda else paddle.CPUPlace() @@ -195,6 +195,11 @@ class TestAdaptiveMaxPool3DAPI(unittest.TestCase): assert np.allclose(out_5.numpy(), self.res_5_np) + def test_dynamic_graph(self): + with paddle.fluid.framework._test_eager_guard(): + self.func_dynamic_graph() + self.func_dynamic_graph() + class TestAdaptiveMaxPool3DClassAPI(unittest.TestCase): diff --git a/python/paddle/nn/functional/pooling.py b/python/paddle/nn/functional/pooling.py index 18f0bc33ae4f4207463bb97155dd65868e2059c8..4c847a4233b9f9e351833d7e3ef1c67a8bb3b6d4 100755 --- a/python/paddle/nn/functional/pooling.py +++ b/python/paddle/nn/functional/pooling.py @@ -1860,9 +1860,14 @@ def adaptive_max_pool3d(x, output_size, return_mask=False, name=None): output_size[2] = in_w if in_dynamic_mode(): - pool_out = _legacy_C_ops.max_pool3d_with_index(x, 'pooling_type', 'max', - 'ksize', output_size, - 'adaptive', True) + if in_dygraph_mode(): + # By default, strides is [1,1,1] and paddings is [0, 0, 0] + pool_out = _C_ops.max_pool3d_with_index(x, output_size, [1, 1, 1], + [0, 0, 0], False, True) + elif _in_legacy_dygraph(): + pool_out = _legacy_C_ops.max_pool3d_with_index( + x, 'pooling_type', 'max', 'ksize', output_size, 'adaptive', + True) return pool_out if return_mask else pool_out[0] l_type = 'max_pool3d_with_index'