人工智能學(xué)習(xí)PyTorch實(shí)現(xiàn)CNN卷積層及nn.Module類示例分析
1.CNN卷積層
通過(guò)nn.Conv2d可以設(shè)置卷積層,當(dāng)然也有1d和3d。
卷積層設(shè)置完畢,將設(shè)置好的輸入數(shù)據(jù),傳給layer(),即可完成一次前向運(yùn)算。也可以傳給layer.forward,但不推薦。
2. 池化層
池化層的核大小一般是2*2,有2種方式:
maxpooling:選擇數(shù)據(jù)中最大值輸出
avgpooling:計(jì)算數(shù)據(jù)的均值并輸出
通過(guò)這一層可以實(shí)現(xiàn)降采樣。
3.數(shù)據(jù)批量標(biāo)準(zhǔn)化
Batch Normalize,在計(jì)算過(guò)程中,通常輸入的數(shù)據(jù)都是0-255的像素?cái)?shù)據(jù),不方便計(jì)算,因此可以通過(guò)nn.BatchNorm1d方法進(jìn)行標(biāo)準(zhǔn)化。
標(biāo)準(zhǔn)化后,可以通過(guò)running_mean, running_var獲取全局的均值和方差。
4.nn.Module類
①各類函數(shù)
Linear, ReLU, Sigmoid, Conv2d, Dropout等等
②容器功能
我們可以直接在定義自己的層的時(shí)候,把所有我們需要用到的層及相關(guān)函數(shù)放進(jìn)去。使用的時(shí)候直接調(diào)用即可。
③參數(shù)管理
在這個(gè)類中可以直接生成我們需要的參數(shù),并且自動(dòng)帶上梯度的需求。
④調(diào)用GPU
⑤存儲(chǔ)和加載
訓(xùn)練過(guò)程中可以根據(jù)需求,比如訓(xùn)練到某一個(gè)點(diǎn)的時(shí)候達(dá)到了最優(yōu),可以將其存儲(chǔ)。
⑥訓(xùn)練、測(cè)試狀態(tài)切換
直接調(diào)用根節(jié)點(diǎn)的train, eval就可以切換。
⑦ 創(chuàng)建自己的層
還有其他功能,但現(xiàn)在還不理解,因此先不往上寫(xiě)了。
5.數(shù)據(jù)增強(qiáng)
數(shù)據(jù)增強(qiáng)主要用在我們數(shù)據(jù)不夠用的時(shí)候,對(duì)原來(lái)的數(shù)據(jù)進(jìn)行調(diào)整,從而生成新的數(shù)據(jù)。比如一張圖片,我們可以對(duì)其進(jìn)行翻轉(zhuǎn)、旋轉(zhuǎn)、大小調(diào)整、切割等操作 。導(dǎo)入數(shù)據(jù)的時(shí)候即可進(jìn)行,具體實(shí)現(xiàn)方式如下。
以上就是人工智能學(xué)習(xí)PyTorch實(shí)現(xiàn)CNN卷積層及nn.Module類示例分析的詳細(xì)內(nèi)容,更多關(guān)于PyTorch中CNN及nn.Module的資料請(qǐng)關(guān)注本站其它相關(guān)文章!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。