From 668a0d3bcae202bde1ff4522d2bb0a565f6a902f Mon Sep 17 00:00:00 2001 From: xiaoting <31891223+tink2123@users.noreply.github.com> Date: Thu, 15 Apr 2021 14:00:39 +0800 Subject: [PATCH] support int for nearest_interp, test=develop (#32270) --- paddle/fluid/operators/interpolate_v2_op.cc | 2 ++ paddle/fluid/operators/interpolate_v2_op.cu | 1 + .../unittests/test_nearest_interp_v2_op.py | 23 +++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/paddle/fluid/operators/interpolate_v2_op.cc b/paddle/fluid/operators/interpolate_v2_op.cc index 3362f2474fe..cfbe1778c76 100644 --- a/paddle/fluid/operators/interpolate_v2_op.cc +++ b/paddle/fluid/operators/interpolate_v2_op.cc @@ -672,6 +672,8 @@ REGISTER_OP_CPU_KERNEL(bilinear_interp_v2_grad, ops::InterpolateV2GradKernel); REGISTER_OP_CPU_KERNEL(nearest_interp_v2, ops::InterpolateV2Kernel, ops::InterpolateV2Kernel, + ops::InterpolateV2Kernel, + ops::InterpolateV2Kernel, ops::InterpolateV2Kernel); REGISTER_OP_CPU_KERNEL(nearest_interp_v2_grad, ops::InterpolateV2GradKernel, diff --git a/paddle/fluid/operators/interpolate_v2_op.cu b/paddle/fluid/operators/interpolate_v2_op.cu index 9c19278ac4d..e5002e72d0e 100644 --- a/paddle/fluid/operators/interpolate_v2_op.cu +++ b/paddle/fluid/operators/interpolate_v2_op.cu @@ -1738,6 +1738,7 @@ REGISTER_OP_CUDA_KERNEL(bilinear_interp_v2_grad, REGISTER_OP_CUDA_KERNEL(nearest_interp_v2, ops::InterpolateOpV2CUDAKernel, ops::InterpolateOpV2CUDAKernel, + ops::InterpolateOpV2CUDAKernel, ops::InterpolateOpV2CUDAKernel); REGISTER_OP_CUDA_KERNEL(nearest_interp_v2_grad, ops::InterpolateV2GradOpCUDAKernel, diff --git a/python/paddle/fluid/tests/unittests/test_nearest_interp_v2_op.py b/python/paddle/fluid/tests/unittests/test_nearest_interp_v2_op.py index 1f88568b5bc..04962a93c11 100755 --- a/python/paddle/fluid/tests/unittests/test_nearest_interp_v2_op.py +++ b/python/paddle/fluid/tests/unittests/test_nearest_interp_v2_op.py @@ -21,6 +21,7 @@ import paddle.fluid.core as core import paddle.fluid as fluid import paddle.nn as nn import paddle +from paddle.nn.functional import interpolate def nearest_neighbor_interp_np(X, @@ -526,6 +527,28 @@ class TestNearestAPI(unittest.TestCase): self.assertTrue(np.allclose(results[i + 1], expect_res)) +class TestNearestInterpOpAPI_dy(unittest.TestCase): + def test_case(self): + import paddle + if core.is_compiled_with_cuda(): + place = core.CUDAPlace(0) + else: + place = core.CPUPlace() + with fluid.dygraph.guard(place): + input_data = np.random.random((2, 3, 6, 6)).astype("int64") + scale_np = np.array([2, 2]).astype("int64") + input_x = paddle.to_tensor(input_data) + scale = paddle.to_tensor(scale_np) + expect_res = nearest_neighbor_interp_np( + input_data, out_h=12, out_w=12, align_corners=False) + out = interpolate( + x=input_x, + scale_factor=scale, + mode="nearest", + align_corners=False) + self.assertTrue(np.allclose(out.numpy(), expect_res)) + + class TestNearestInterpException(unittest.TestCase): def test_exception(self): input = fluid.data(name="input", shape=[1, 3, 6, 6], dtype="float32") -- GitLab