CNN 卷積神蹟網路
參考網站:
卷积的in_channel与out_channel
Day 15. 深度學習模型 - CNN(一)
- 卷積層 : 濃縮特徵
- 池化層 : 提取特徵
- 反向傳播 : 學習(調整參數)
- 全連接層 : 分類
以下以 Pytorch 舉例
Convulation layer 卷積層
藉由滑動窗口(kernel)提取特徵,產生特徵地圖(Feature Map)
1 | nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding) |
- in_channel : 一般圖像為RGB, 因此有三層
- out_channel : Feature Map 大小
- kernel_size : 生成一個 n x n 大小的滑動窗口 , 深度和in_chanel一樣
- stride : 滑動窗口完成一次,向右移動n個單位
- padding : 向外填充n圈0
結論: 不管使用深度為多少圖片,經過kernel都將產生深度為1的Feature Map , 有幾個kernel就有幾個Feature Map
Pooling layer 池化層
提取主要特徵,選擇最具代表特徵降低參數量,和避免過擬合
- 最大池化 (Max Pooling) : 挑局部區域最大數
nn.MaxPool2d(kernel_size, stride, padding, dilation=1, return_indices=False, ceil_mode=False)
1 | 1. 平均池化 (Average Pooling) : 局部區域平均為代表 |
Fully-connected Layer 全連接層
- 先將輸出拉平
1 | torch.flatten(input, start_dim=0, end_dim=- 1) |
- 將所有局部特徵(全連接),經過權重組成新的圖
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 OPH BLOG!
評論
ValineDisqus