1.CNN卷積層
通過nn.Conv2d可以設置卷積層,當然也有1d和3d。
卷積層設置完畢,將設置好的輸入數據,傳給layer(),即可完成一次前向運算。也可以傳給layer.forward,但不推薦。
2. 池化層
池化層的核大小一般是2*2,有2種方式:
maxpooling:選擇數據中最大值輸出
avgpooling:計算數據的均值并輸出
通過這一層可以實現降采樣。
3.數據批量標準化
Batch Normalize,在計算過程中,通常輸入的數據都是0-255的像素數據,不方便計算,因此可以通過nn.BatchNorm1d方法進行標準化。
標準化后,可以通過running_mean, running_var獲取全局的均值和方差。
4.nn.Module類
①各類函數
Linear, ReLU, Sigmoid, Conv2d, Dropout等等
②容器功能
我們可以直接在定義自己的層的時候,把所有我們需要用到的層及相關函數放進去。使用的時候直接調用即可。
③參數管理
在這個類中可以直接生成我們需要的參數,并且自動帶上梯度的需求。
④調用GPU
⑤存儲和加載
訓練過程中可以根據需求,比如訓練到某一個點的時候達到了最優,可以將其存儲。
⑥訓練、測試狀態切換
直接調用根節點的train, eval就可以切換。
⑦ 創建自己的層
還有其他功能,但現在還不理解,因此先不往上寫了。
5.數據增強
數據增強主要用在我們數據不夠用的時候,對原來的數據進行調整,從而生成新的數據。比如一張圖片,我們可以對其進行翻轉、旋轉、大小調整、切割等操作 。導入數據的時候即可進行,具體實現方式如下。
以上就是人工智能學習PyTorch實現CNN卷積層及nn.Module類示例分析的詳細內容,更多關于PyTorch中CNN及nn.Module的資料請關注服務器之家其它相關文章!
原文鏈接:https://blog.csdn.net/Swayzzu/article/details/121127070