Shortcuts

ConstantPad2d

class torch.nn.ConstantPad2d(padding, value)[源代码]

使用常数值填充输入张量的边界。

对于N维填充,使用torch.nn.functional.pad()

Parameters

padding (int, tuple) – 填充的大小。如果是int,则在所有边界使用相同的填充。如果是4-tuple,则使用 (padding_left\text{padding\_left}, padding_right\text{padding\_right}, padding_top\text{padding\_top}, padding_bottom\text{padding\_bottom})

Shape:
  • 输入:(N,C,Hin,Win)(N, C, H_{in}, W_{in})(C,Hin,Win)(C, H_{in}, W_{in})

  • 输出: (N,C,Hout,Wout)(N, C, H_{out}, W_{out})(C,Hout,Wout)(C, H_{out}, W_{out}), 其中

    Hout=Hin+上填充+下填充H_{out} = H_{in} + \text{上填充} + \text{下填充}

    Wout=Win+左填充+右填充W_{out} = W_{in} + \text{左填充} + \text{右填充}

示例:

>>> m = nn.ConstantPad2d(2, 3.5)
>>> input = torch.randn(1, 2, 2)
>>> input
tensor([[[ 1.6585,  0.4320],
         [-0.8701, -0.4649]]])
>>> m(input)
tensor([[[ 3.5000,  3.5000,  3.5000,  3.5000,  3.5000,  3.5000],
         [ 3.5000,  3.5000,  3.5000,  3.5000,  3.5000,  3.5000],
         [ 3.5000,  3.5000,  1.6585,  0.4320,  3.5000,  3.5000],
         [ 3.5000,  3.5000, -0.8701, -0.4649,  3.5000,  3.5000],
         [ 3.5000,  3.5000,  3.5000,  3.5000,  3.5000,  3.5000],
         [ 3.5000,  3.5000,  3.5000,  3.5000,  3.5000,  3.5000]]])
>>> # 对不同边使用不同的填充
>>> m = nn.ConstantPad2d((3, 0, 2, 1), 3.5)
>>> m(input)
tensor([[[ 3.5000,  3.5000,  3.5000,  3.5000,  3.5000],
         [ 3.5000,  3.5000,  3.5000,  3.5000,  3.5000],
         [ 3.5000,  3.5000,  3.5000,  1.6585,  0.4320],
         [ 3.5000,  3.5000,  3.5000, -0.8701, -0.4649],
         [ 3.5000,  3.5000,  3.5000,  3.5000,  3.5000]]])
优云智算