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)