快捷方式

torch.nn.functional.pad

torch.nn.functional.pad(input, pad, mode='constant', value=None) Tensor[源代码]

对张量进行填充。

填充大小

用于填充 input 的某些维度的填充大小从最后一个维度开始,向前移动。 len(pad)2\left\lfloor\frac{\text{len(pad)}}{2}\right\rfloor 的维度将被填充。例如,要仅填充输入张量的最后一个维度,则 pad 的形式为 (padding_left,padding_right)(\text{padding\_left}, \text{padding\_right}); 要填充输入张量的最后 2 个维度,则使用 (padding_left,padding_right,(\text{padding\_left}, \text{padding\_right}, padding_top,padding_bottom)\text{padding\_top}, \text{padding\_bottom}); 要填充最后 3 个维度,则使用 (padding_left,padding_right,(\text{padding\_left}, \text{padding\_right}, padding_top,padding_bottom\text{padding\_top}, \text{padding\_bottom} padding_front,padding_back)\text{padding\_front}, \text{padding\_back}).

填充模式

查看 torch.nn.CircularPad2dtorch.nn.ConstantPad2dtorch.nn.ReflectionPad2dtorch.nn.ReplicationPad2d 获取每个填充模式的具体示例。常量填充在任意维度上都有实现。循环填充、复制填充和反射填充在 4D 或 5D 输入张量的最后 3 个维度、3D 或 4D 输入张量的最后 2 个维度或 2D 或 3D 输入张量的最后 1 个维度上实现。

注意

当使用 CUDA 后端时,此操作可能会在其反向传播中引入不可确定的行为,并且难以关闭。有关背景信息,请参阅关于 可重复性 的说明。

参数
  • input (张量) – N 维张量

  • pad (元组) – m 个元素的元组,其中 m2\frac{m}{2} \leq 输入维度,并且 mm 是偶数。

  • mode (字符串) – 'constant''reflect''replicate''circular'。默认值:'constant'

  • value (可选[浮点数]) – 'constant' 填充的填充值。默认值:0

返回值类型

张量

示例

>>> t4d = torch.empty(3, 3, 4, 2)
>>> p1d = (1, 1) # pad last dim by 1 on each side
>>> out = F.pad(t4d, p1d, "constant", 0)  # effectively zero padding
>>> print(out.size())
torch.Size([3, 3, 4, 4])
>>> p2d = (1, 1, 2, 2) # pad last dim by (1, 1) and 2nd to last by (2, 2)
>>> out = F.pad(t4d, p2d, "constant", 0)
>>> print(out.size())
torch.Size([3, 3, 8, 4])
>>> t4d = torch.empty(3, 3, 4, 2)
>>> p3d = (0, 1, 2, 1, 3, 3) # pad by (0, 1), (2, 1), and (3, 3)
>>> out = F.pad(t4d, p3d, "constant", 0)
>>> print(out.size())
torch.Size([3, 9, 7, 3])

文档

访问 PyTorch 的综合开发者文档

查看文档

教程

获取针对初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源