From 0404e7a985065c49651bab5643113ee22bdc0576 Mon Sep 17 00:00:00 2001 From: liu zhengxi <380185688@qq.com> Date: Sun, 2 Feb 2020 20:23:51 +0800 Subject: [PATCH] Update the precision of pad, pad2d, pad_constant_like's unit tests from fp32 to fp64 (#22394) * update the ut precision of pad pad2d pad_constant_like from fp32 to fp64, test=develop --- paddle/fluid/operators/pad2d_op.cc | 2 +- paddle/fluid/operators/pad2d_op.cu | 2 +- paddle/fluid/operators/pad_constant_like_op.h | 2 +- python/paddle/fluid/tests/unittests/test_pad2d_op.py | 5 +++-- .../paddle/fluid/tests/unittests/test_pad_constant_like.py | 4 ++-- python/paddle/fluid/tests/unittests/test_pad_op.py | 2 +- .../tests/unittests/white_list/op_accuracy_white_list.py | 3 --- 7 files changed, 9 insertions(+), 11 deletions(-) diff --git a/paddle/fluid/operators/pad2d_op.cc b/paddle/fluid/operators/pad2d_op.cc index 9dfdcfcf13..171b88247c 100644 --- a/paddle/fluid/operators/pad2d_op.cc +++ b/paddle/fluid/operators/pad2d_op.cc @@ -345,7 +345,7 @@ class Pad2dCPUKernel : public framework::OpKernel { GetPaddings(pads, context); auto mode = context.Attr("mode"); auto data_format = context.Attr("data_format"); - T value = context.Attr("pad_value"); + T value = static_cast(context.Attr("pad_value")); auto* x = context.Input("X"); auto in_dims = x->dims(); diff --git a/paddle/fluid/operators/pad2d_op.cu b/paddle/fluid/operators/pad2d_op.cu index 05fad5b3bb..1e3a655a76 100644 --- a/paddle/fluid/operators/pad2d_op.cu +++ b/paddle/fluid/operators/pad2d_op.cu @@ -314,7 +314,7 @@ class Pad2dCUDAKernel : public framework::OpKernel { GetPaddings(pads, context); auto mode = context.Attr("mode"); auto data_format = context.Attr("data_format"); - T value = context.Attr("pad_value"); + T value = static_cast(context.Attr("pad_value")); auto* x = context.Input("X"); auto in_dims = x->dims(); diff --git a/paddle/fluid/operators/pad_constant_like_op.h b/paddle/fluid/operators/pad_constant_like_op.h index 4718ae915a..5df167fdf7 100644 --- a/paddle/fluid/operators/pad_constant_like_op.h +++ b/paddle/fluid/operators/pad_constant_like_op.h @@ -38,7 +38,7 @@ class PadConstantLikeKernel : public framework::OpKernel { return; } - T pad_value = context.Attr("pad_value"); + T pad_value = static_cast(context.Attr("pad_value")); out->mutable_data(context.GetPlace()); int rank = context.Input("X")->dims().size(); diff --git a/python/paddle/fluid/tests/unittests/test_pad2d_op.py b/python/paddle/fluid/tests/unittests/test_pad2d_op.py index 15486e8879..a4f3855325 100644 --- a/python/paddle/fluid/tests/unittests/test_pad2d_op.py +++ b/python/paddle/fluid/tests/unittests/test_pad2d_op.py @@ -23,14 +23,15 @@ class TestPad2dOp(OpTest): self.variable_paddings = False self.initTestCase() self.op_type = "pad2d" - self.inputs = {'X': np.random.random(self.shape).astype("float32"), } + self.inputs = {'X': np.random.random(self.shape).astype("float64")} self.attrs = {} if self.variable_paddings: self.attrs['paddings'] = [] self.inputs['Paddings'] = np.array(self.paddings).flatten().astype( "int32") else: - self.attrs['paddings'] = np.array(self.paddings).flatten() + self.attrs['paddings'] = np.array(self.paddings).flatten().astype( + "int32") self.attrs['pad_value'] = self.pad_value self.attrs['mode'] = self.mode self.attrs['data_format'] = self.data_format diff --git a/python/paddle/fluid/tests/unittests/test_pad_constant_like.py b/python/paddle/fluid/tests/unittests/test_pad_constant_like.py index fe29a2b57b..290b217c31 100644 --- a/python/paddle/fluid/tests/unittests/test_pad_constant_like.py +++ b/python/paddle/fluid/tests/unittests/test_pad_constant_like.py @@ -24,8 +24,8 @@ class TestPadOp(OpTest): self.initTestCase() self.op_type = "pad_constant_like" self.inputs = { - 'X': np.random.random(self.x_shape).astype("float32"), - 'Y': np.random.random(self.y_shape).astype("float32") + 'X': np.random.random(self.x_shape).astype("float64"), + 'Y': np.random.random(self.y_shape).astype("float64") } self.attrs = {} self.attrs['pad_value'] = self.pad_value diff --git a/python/paddle/fluid/tests/unittests/test_pad_op.py b/python/paddle/fluid/tests/unittests/test_pad_op.py index 7d9aea2a19..7713c3da93 100644 --- a/python/paddle/fluid/tests/unittests/test_pad_op.py +++ b/python/paddle/fluid/tests/unittests/test_pad_op.py @@ -37,7 +37,7 @@ class TestPadOp(OpTest): } def get_dtype(self): - return np.float32 + return np.float64 def test_check_output(self): self.check_output() diff --git a/python/paddle/fluid/tests/unittests/white_list/op_accuracy_white_list.py b/python/paddle/fluid/tests/unittests/white_list/op_accuracy_white_list.py index a4470bf063..d0f43d8fda 100644 --- a/python/paddle/fluid/tests/unittests/white_list/op_accuracy_white_list.py +++ b/python/paddle/fluid/tests/unittests/white_list/op_accuracy_white_list.py @@ -50,9 +50,6 @@ NO_FP64_CHECK_GRAD_OP_LIST = [ 'modified_huber_loss', \ 'mul', \ 'nce', \ - 'pad', \ - 'pad2d', \ - 'pad_constant_like', \ 'pool2d', \ 'pool3d', \ 'prroi_pool', \ -- GitLab