人工智能學習PyTorch實現(xiàn)CNN卷積層及nn.Module類示例分析
1.CNN卷積層
通過nn.Conv2d可以設(shè)置卷積層,當然也有1d和3d。
卷積層設(shè)置完畢,將設(shè)置好的輸入數(shù)據(jù),傳給layer(),即可完成一次前向運算。也可以傳給layer.forward,但不推薦。
2. 池化層
池化層的核大小一般是2*2,有2種方式:
maxpooling:選擇數(shù)據(jù)中最大值輸出
avgpooling:計算數(shù)據(jù)的均值并輸出
通過這一層可以實現(xiàn)降采樣。
3.數(shù)據(jù)批量標準化
Batch Normalize,在計算過程中,通常輸入的數(shù)據(jù)都是0-255的像素數(shù)據(jù),不方便計算,因此可以通過nn.BatchNorm1d方法進行標準化。
標準化后,可以通過running_mean, running_var獲取全局的均值和方差。
4.nn.Module類
①各類函數(shù)
Linear, ReLU, Sigmoid, Conv2d, Dropout等等
②容器功能
我們可以直接在定義自己的層的時候,把所有我們需要用到的層及相關(guān)函數(shù)放進去。使用的時候直接調(diào)用即可。
③參數(shù)管理
在這個類中可以直接生成我們需要的參數(shù),并且自動帶上梯度的需求。
④調(diào)用GPU
⑤存儲和加載
訓練過程中可以根據(jù)需求,比如訓練到某一個點的時候達到了最優(yōu),可以將其存儲。
⑥訓練、測試狀態(tài)切換
直接調(diào)用根節(jié)點的train, eval就可以切換。
⑦ 創(chuàng)建自己的層
還有其他功能,但現(xiàn)在還不理解,因此先不往上寫了。
5.數(shù)據(jù)增強
數(shù)據(jù)增強主要用在我們數(shù)據(jù)不夠用的時候,對原來的數(shù)據(jù)進行調(diào)整,從而生成新的數(shù)據(jù)。比如一張圖片,我們可以對其進行翻轉(zhuǎn)、旋轉(zhuǎn)、大小調(diào)整、切割等操作 。導入數(shù)據(jù)的時候即可進行,具體實現(xiàn)方式如下。
以上就是人工智能學習PyTorch實現(xiàn)CNN卷積層及nn.Module類示例分析的詳細內(nèi)容,更多關(guān)于PyTorch中CNN及nn.Module的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
django為Form生成的label標簽添加class方式
這篇文章主要介紹了django為Form生成的label標簽添加class方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05python中三種高階函數(shù)(map,reduce,filter)詳解
在Python中,函數(shù)其實也是一種數(shù)據(jù)類型,今天重點給大家介紹python中三種高階函數(shù)(map,reduce,filter)的相關(guān)知識,感興趣的朋友一起看看吧2021-10-10Python調(diào)用C/C++動態(tài)鏈接庫的方法詳解
這篇文章主要介紹了Python調(diào)用C/C++動態(tài)鏈接庫的方法,需要的朋友可以參考下2014-07-07