torch.nn.functional.conv2d#
- torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) Tensor#
在由多個輸入平面組成的輸入影像上應用二維卷積。
此運算子支援TensorFloat32。
有關詳細資訊和輸出形狀,請參閱
Conv2d。注意
在某些情況下,當在 CUDA 裝置上使用張量並利用 CuDNN 時,此運算元可能會選擇一個非確定性演算法來提高效能。如果這不可取,你可以嘗試將操作設定為確定性的(可能以效能為代價),方法是設定
torch.backends.cudnn.deterministic = True。有關更多資訊,請參閱 可復現性。注意
此運算子支援複數資料型別,例如
complex32, complex64, complex128。- 引數
input – 輸入張量,形狀為
weight – 濾波器,形狀為
bias – 可選的偏置張量,形狀為 。預設為
Nonestride – 卷積核的步幅。可以是單個數字或元組 (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)