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_{in}, W_{in})$$

• Output: $$(N, 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)
__init__(padding: Union[int, Tuple[int, int, int, int]])

Initialize self. See help(type(self)) for accurate signature.

Methods

 __call__(*args, **kwargs) Call self as a function. __delattr__(name, /) Implement delattr(self, name). __dir__() Default dir() implementation. __eq__(value, /) Return self==value. __format__(format_spec, /) Default object formatter. __ge__(value, /) Return self>=value. __getattr__(name) __getattribute__(name, /) Return getattr(self, name). __gt__(value, /) Return self>value. __hash__() Return hash(self). __init__(padding) Initialize self. __init_subclass__ This method is called when a class is subclassed. __le__(value, /) Return self<=value. __lt__(value, /) Return self