nn.Conv2d
?是 PyTorch 中的一個卷積層,用于實現(xiàn)二維卷積操作。其主要參數(shù)有:
-
in_channels
:表示輸入圖像的通道數(shù),也就是輸入特征圖的深度。 -
out_channels
:表示輸出特征圖的通道數(shù),也就是卷積核的個數(shù)。 -
kernel_size
:表示卷積核的大??;可以是一個整數(shù),表示正方形卷積核的邊長;也可以是一個二元組,表示矩形卷積核的寬度和高度。 -
stride
:表示卷積核的步長;可以是一個整數(shù),表示正方形卷積核的步長;也可以是一個二元組,表示矩形卷積核在橫向和縱向的步長。 -
padding
:表示在輸入圖像周圍添加的邊界值的數(shù)量,以控制輸出尺寸的大小??梢允且粋€整數(shù),表示在四周添加相同數(shù)量的像素值;也可以是一個二元組,表示在左右、上下分別添加的像素值數(shù)量。 -
dilation
:表示卷積核中各個元素之間的擴展步長,可以認(rèn)為是卷積核的細(xì)節(jié)或稀疏程度,可以用來控制卷積核的超參數(shù)大小和感受野的大小。 -
groups
:當(dāng)輸入和輸出通道數(shù)不同時,可以利用 groups 參數(shù)將輸入通道分組處理,將相鄰的k個輸入通道與相鄰的k個輸出通道進(jìn)行卷積操作,然后將它們疊加在一起產(chǎn)生輸出通道。這是一個非常重要的架構(gòu)設(shè)計,可以大大減少模型參數(shù)量,減輕模型過擬合的風(fēng)險。
nn.Conv2d
?的使用方法一般如下:
import torch.nn as nn
# 定義卷積層
conv = nn.Conv2d(in_channels=3, out_channels=32, kernel_size=3, stride=1, padding=1)
# 輸入數(shù)據(jù)
x = torch.randn(1, 3, 224, 224)
# 前向計算
out = conv(x)
這里我們定義了一個輸入通道數(shù)為 3,輸出通道數(shù)為 32,卷積核大小為 3x3,步長為 1,邊界填充數(shù)為 1 的卷積層。然后,我們定義了一個大小為 (1, 3, 224, 224) 的輸入數(shù)據(jù) x,執(zhí)行前向計算得到輸出 out。文章來源:http://www.zghlxwxcb.cn/news/detail-447164.html
注意,對于卷積操作,輸入數(shù)據(jù)一般為四維張量,需要按照 batchsize × 通道數(shù) × 高度 × 寬度的維度排列,這里 x 的大小為 (1, 3, 224, 224) 表示 batchsize 為 1,通道數(shù)為 3,輸入圖像的尺寸為 224x224。文章來源地址http://www.zghlxwxcb.cn/news/detail-447164.html
到了這里,關(guān)于nn.Conv2d詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!