快捷方式

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 維度的 input 將被填充。例如,僅填充輸入張量的最後一個維度時,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.CircularPad2d, torch.nn.ConstantPad2d, torch.nn.ReflectionPad2dtorch.nn.ReplicationPad2d。 常數填充適用於任意維度。迴圈 (Circular)、複製 (replicate) 和反射 (reflection) 填充適用於填充 4D 或 5D 輸入張量的最後 3 個維度,3D 或 4D 輸入張量的最後 2 個維度,或者 2D 或 3D 輸入張量的最後一個維度。

注意

使用 CUDA 後端時,此操作在其反向傳播過程中可能會導致非確定性行為,且不容易關閉。有關背景資訊,請參閱關於可復現性的說明。

引數
  • input (Tensor) – N維張量

  • pad (tuple) – 包含 m 個元素的 tuple,其中 m2\frac{m}{2} \leq 輸入維度且 mm 為偶數。

  • mode (str) – 'constant''reflect''replicate''circular'。預設值:'constant'

  • value (Optional[float]) – 用於 '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 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲取解答

檢視資源