未验证 提交 78260ff3 编写于 作者: W wangguanzhong 提交者: GitHub

fix output_padding in conv (#33585)

* fix output padding conv

* add repr unittest for conv
上级 e6c5282e
...@@ -18,6 +18,7 @@ import unittest ...@@ -18,6 +18,7 @@ import unittest
import numpy as np import numpy as np
import paddle import paddle
import paddle.nn as nn
paddle.enable_static() paddle.enable_static()
import paddle.fluid.core as core import paddle.fluid.core as core
import paddle.fluid as fluid import paddle.fluid as fluid
...@@ -898,5 +899,17 @@ class TestConv2DTransposeOpException(unittest.TestCase): ...@@ -898,5 +899,17 @@ class TestConv2DTransposeOpException(unittest.TestCase):
self.assertRaises(ValueError, attr_padding_with_data_format) self.assertRaises(ValueError, attr_padding_with_data_format)
class TestConv2DTransposeRepr(unittest.TestCase):
def test_case(self):
paddle.disable_static()
x_var = paddle.uniform((2, 4, 8, 8), dtype='float32', min=-1., max=1.)
conv = nn.Conv2DTranspose(4, 6, (3, 3), output_padding=1, stride=2)
print(conv)
y_var = conv(x_var)
y_np = y_var.numpy()
self.assertIsNotNone(y_np)
paddle.enable_static()
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
...@@ -98,7 +98,7 @@ class _ConvNd(layers.Layer): ...@@ -98,7 +98,7 @@ class _ConvNd(layers.Layer):
'kernel_size') 'kernel_size')
self._padding = padding self._padding = padding
self._padding_mode = padding_mode self._padding_mode = padding_mode
self._output_padding = output_padding self.output_padding = output_padding
if dims != 1: if dims != 1:
self._updated_padding, self._padding_algorithm = _update_padding_nd( self._updated_padding, self._padding_algorithm = _update_padding_nd(
padding, channel_last, dims) padding, channel_last, dims)
...@@ -163,8 +163,8 @@ class _ConvNd(layers.Layer): ...@@ -163,8 +163,8 @@ class _ConvNd(layers.Layer):
main_str += ', padding={_padding}' main_str += ', padding={_padding}'
if self._padding_mode is not 'zeros': if self._padding_mode is not 'zeros':
main_str += ', padding_mode={_padding_mode}' main_str += ', padding_mode={_padding_mode}'
if self._output_padding != 0: if self.output_padding != 0:
main_str += ', output_padding={_output_padding}' main_str += ', output_padding={output_padding}'
if self._dilation != [1] * len(self._dilation): if self._dilation != [1] * len(self._dilation):
main_str += ', dilation={_dilation}' main_str += ', dilation={_dilation}'
if self._groups != 1: if self._groups != 1:
...@@ -508,7 +508,7 @@ class Conv1DTranspose(_ConvNd): ...@@ -508,7 +508,7 @@ class Conv1DTranspose(_ConvNd):
self.weight, self.weight,
bias=self.bias, bias=self.bias,
output_size=output_size, output_size=output_size,
output_padding=self._output_padding, output_padding=self.output_padding,
padding=self._padding, padding=self._padding,
stride=self._stride, stride=self._stride,
dilation=self._dilation, dilation=self._dilation,
...@@ -824,7 +824,7 @@ class Conv2DTranspose(_ConvNd): ...@@ -824,7 +824,7 @@ class Conv2DTranspose(_ConvNd):
def forward(self, x, output_size=None): def forward(self, x, output_size=None):
if output_size is None: if output_size is None:
output_padding = self._output_padding output_padding = self.output_padding
else: else:
output_padding = 0 output_padding = 0
...@@ -1161,7 +1161,7 @@ class Conv3DTranspose(_ConvNd): ...@@ -1161,7 +1161,7 @@ class Conv3DTranspose(_ConvNd):
def forward(self, x, output_size=None): def forward(self, x, output_size=None):
if output_size is None: if output_size is None:
output_padding = self._output_padding output_padding = self.output_padding
else: else:
output_padding = 0 output_padding = 0
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册