From 01a78323a7d59d055bab3d603ce473021d4131fb Mon Sep 17 00:00:00 2001 From: zhongpu <2013000149@qq.com> Date: Fri, 10 Apr 2020 11:18:43 +0800 Subject: [PATCH] API/OP (Conv2DTranspose) error message enhancement (#23590) * error message enhancement for Conv2DTranspose, test=develop * fix error_message, test=develop --- python/paddle/fluid/dygraph/nn.py | 4 ++++ .../fluid/tests/unittests/test_layers.py | 22 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/python/paddle/fluid/dygraph/nn.py b/python/paddle/fluid/dygraph/nn.py index d9b06141094..618179a932d 100644 --- a/python/paddle/fluid/dygraph/nn.py +++ b/python/paddle/fluid/dygraph/nn.py @@ -2458,6 +2458,10 @@ class Conv2DTranspose(layers.Layer): return dygraph_utils._append_activation_in_dygraph( pre_act, act=self._act) + check_variable_and_dtype(input, 'input', + ['float16', 'float32', 'float64'], + "Conv2DTranspose") + inputs = {'Input': [input], 'Filter': [self.weight]} attrs = { 'output_size': self._output_size, diff --git a/python/paddle/fluid/tests/unittests/test_layers.py b/python/paddle/fluid/tests/unittests/test_layers.py index f919ddd72ef..7cb67b8bd55 100644 --- a/python/paddle/fluid/tests/unittests/test_layers.py +++ b/python/paddle/fluid/tests/unittests/test_layers.py @@ -617,6 +617,28 @@ class TestLayer(LayerTest): self.assertTrue( np.array_equal(conv2d1.bias.numpy(), conv2d2.bias.numpy())) + with self.static_graph(): + + # the input of Conv2DTranspose must be Variable. + def test_Variable(): + images = np.ones([2, 3, 5, 5], dtype='float32') + conv2d = nn.Conv2DTranspose( + num_channels=3, num_filters=3, filter_size=[2, 2]) + conv2d_ret1 = conv2d(images) + + self.assertRaises(TypeError, test_Variable) + + # the input dtype of Conv2DTranspose must be float16 or float32 or float64 + # float16 only can be set on GPU place + def test_type(): + images = layers.data( + name='pixel', shape=[3, 5, 5], dtype='int32') + conv2d = nn.Conv2DTranspose( + num_channels=3, num_filters=3, filter_size=[2, 2]) + conv2d_ret2 = conv2d(images) + + self.assertRaises(TypeError, test_type) + def test_bilinear_tensor_product(self): inp_np_x = np.array([[1, 2, 3]]).astype('float32') inp_np_y = np.array([[4, 5, 6]]).astype('float32') -- GitLab