oneflow.nn.ReplicationPad2d¶
-
class
oneflow.nn.
ReplicationPad2d
(padding)¶ Pads the input tensor using the replication of the input boundary.
The interface is consistent with PyTorch. The documentation is referenced from: https://pytorch.org/docs/1.10/generated/torch.nn.ReplicationPad2d.html.
- Parameters
padding (Union[int, tuple, list]) – the size of the padding. If is int, uses the same padding in all boundaries. If a 4-tuple, uses (\(\mathrm{padding_{left}}\), \(\mathrm{padding_{right}}\), \(\mathrm{padding_{top}}\), \(\mathrm{padding_{bottom}}\))
- Shape:
Input: \((N, C, H_{\text{in}}, W_{\text{in}})\) or \((C, H_{in}, W_{in})\)
Output: \((N, C, H_{\text{out}}, W_{\text{out}})\) or \((C, H_{out}, W_{out})\) where
\(H_{out} = H_{in} + \mathrm{padding_{top}} + \mathrm{padding_{bottom}}\)
\(W_{out} = W_{in} + \mathrm{padding_{left}} + \mathrm{padding_{right}}\)
For example:
>>> import oneflow as flow >>> import numpy as np >>> m = flow.nn.ReplicationPad2d((2, 2, 1, 1)) >>> input = flow.tensor(np.arange(18).reshape((1, 2, 3, 3)).astype(np.float32)) >>> input_int = flow.tensor(np.arange(18).reshape((1, 2, 3, 3)).astype(np.int32)) >>> output = m(input) >>> output.shape oneflow.Size([1, 2, 5, 7]) >>> output tensor([[[[ 0., 0., 0., 1., 2., 2., 2.], [ 0., 0., 0., 1., 2., 2., 2.], [ 3., 3., 3., 4., 5., 5., 5.], [ 6., 6., 6., 7., 8., 8., 8.], [ 6., 6., 6., 7., 8., 8., 8.]], [[ 9., 9., 9., 10., 11., 11., 11.], [ 9., 9., 9., 10., 11., 11., 11.], [12., 12., 12., 13., 14., 14., 14.], [15., 15., 15., 16., 17., 17., 17.], [15., 15., 15., 16., 17., 17., 17.]]]], dtype=oneflow.float32)