torch.nn.functional.conv2d¶
- torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) Tensor ¶
將 2D 卷積應用於由多個輸入平面組成的輸入影像。
此運算子支援 TensorFloat32。
詳情和輸出形狀請參閱
Conv2d
。注意
在某些情況下,當給定 CUDA 裝置上的張量並使用 CuDNN 時,此運算子可能會選擇非決定性演算法來提高效能。 如果不希望如此,您可以嘗試將操作設定為確定性(可能以效能為代價),方法是設定
torch.backends.cudnn.deterministic = True
。 有關更多資訊,請參閱再現性。注意
此運算子支援複數資料類型,例如
complex32, complex64, complex128
。- 參數
input – 形狀為 的輸入張量
weight – 形狀為 的濾波器
bias – 形狀為 的可選偏差張量。預設值:
None
stride – 卷積核的步幅。 可以是單個數字或元組 (sH, sW)。 預設值:1
padding –
輸入兩側的隱式填充。 可以是字串 {'valid', 'same'}、單個數字或元組 (padH, padW)。 預設值:0。
padding='valid'
與無填充相同。padding='same'
填充輸入,使輸出具有與輸入相同的形狀。 但是,此模式不支援任何步幅值,除了 1 以外。警告
對於
padding='same'
,如果weight
是偶數長度,並且dilation
在任何維度上都是奇數,則可能需要在內部進行完整的pad()
操作。 降低效能。dilation – 核心元素之間的間距。 可以是單個數字或元組 (dH, dW)。 預設值:1
groups – 將輸入分成組, 和 都應可被組數整除。 預設值:1
範例
>>> # With square kernels and equal stride >>> filters = torch.randn(8, 4, 3, 3) >>> inputs = torch.randn(1, 4, 5, 5) >>> F.conv2d(inputs, filters, padding=1)