torch.nn.functional.pad¶
- torch.nn.functional.pad(input, pad, mode='constant', value=None) Tensor[原始碼][原始碼]¶
填充張量。
- 填充大小
用於填充
input張量某些維度的填充大小,是從最後一個維度開始向前描述的。 維度的input將被填充。例如,僅填充輸入張量的最後一個維度時,pad的形式為 ;填充輸入張量的最後 2 個維度時,使用 ;填充最後 3 個維度時,使用 。- 填充模式
關於每種填充模式具體如何工作,請參閱
torch.nn.CircularPad2d,torch.nn.ConstantPad2d,torch.nn.ReflectionPad2d和torch.nn.ReplicationPad2d。 常數填充適用於任意維度。迴圈 (Circular)、複製 (replicate) 和反射 (reflection) 填充適用於填充 4D 或 5D 輸入張量的最後 3 個維度,3D 或 4D 輸入張量的最後 2 個維度,或者 2D 或 3D 輸入張量的最後一個維度。
注意
使用 CUDA 後端時,此操作在其反向傳播過程中可能會導致非確定性行為,且不容易關閉。有關背景資訊,請參閱關於可復現性的說明。
- 引數
- 返回型別
示例
>>> 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])