torch.nn.functional.pad¶
- torch.nn.functional.pad(input, pad, mode='constant', value=None) Tensor [source][source]¶
填充張量 (Pads tensor)。
- 填充尺寸 (Padding size)
要從
input
的某些維度開始填充的填充尺寸,從最後一個維度開始,然後向前移動。 個維度將被填充。例如,要僅填充輸入張量的最後一個維度,則pad
的形式為 ; 要填充輸入張量的最後 2 個維度,請使用 ; 要填充最後 3 個維度,請使用 。- 填充模式 (Padding mode)
請參閱
torch.nn.CircularPad2d
、torch.nn.ConstantPad2d
、torch.nn.ReflectionPad2d
和torch.nn.ReplicationPad2d
,以取得有關每種填充模式如何運作的具體範例。常數填充 (Constant padding) 針對任意維度實作。循環 (Circular)、複製 (replicate) 和反射 (reflection) 填充針對填充 4D 或 5D 輸入張量的最後 3 個維度、3D 或 4D 輸入張量的最後 2 個維度,或 2D 或 3D 輸入張量的最後一個維度實作。
注意
使用 CUDA 後端時,此操作可能會在其向後傳遞中產生不具確定性的行為,且不易關閉。 請參閱關於再現性的說明,以取得背景資訊。
- 參數
input (Tensor) – N 維張量
pad (tuple) – m 元素的元組,其中 輸入維度且 為偶數。
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])