[pytorch、学习] - 5.4 池化层
生活随笔
收集整理的這篇文章主要介紹了
[pytorch、学习] - 5.4 池化层
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考
5.4 池化層
在本節中我們介紹池化(pooling)層,它的提出是為了緩解卷積層對位置的過度敏感性。
5.4.1 二維最大池化層和平均池化層
池化層直接計算池化窗口內元素的最大值或者平均值。該運算也叫做最大池化層或平均池化層。
下面把池化層的前向計算實現在pool2d函數里。
import torch import torch.nn as nndef pool2d(X, pool_size, mode="max"):X = X.float()p_h, p_w = pool_sizeY = torch.zeros(X.shape[0] - p_h + 1, X.shape[1] - p_w + 1)for i in range(Y.shape[0]):for j in range(Y.shape[1]):if mode == 'max':Y[i, j] = X[i: i + p_h, j: j + p_w].max()elif mode == 'avg':Y[i, j] = X[i: i + p_h, j: j + p_w].mean()return Y X = torch.tensor([[0,1,2], [3,4,5], [6,7,8]]) pool2d(X, (2, 2))
下面驗證一下平均池化層
5.4.2 填充和步幅
池化層也可以定義填充和步幅
X = torch.arange(16, dtype=torch.float).view((1, 1, 4, 4)) X
默認情況下,MaxPool2d實例里步幅和池化窗口形狀相同。下面使用形狀為(3, 3)的池化窗口,默認獲得形狀為(3, 3)的步幅。
我們可以手動指定步幅和填充。
當然,我們也可以指定非正方形的池化窗口,并分別指定高和寬上的填充和步幅。
5.4.3 多通道
池化層對每個輸入通道分別池化,而不是像卷積層那樣將各通道的輸入按通道相加.
X = torch.cat((X, X + 1), dim=1) X池化后,我們發現輸出通道數仍然是2。
總結
以上是生活随笔為你收集整理的[pytorch、学习] - 5.4 池化层的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: threejs创建平面几何形状
- 下一篇: mongodb 数组添加_NoSQL之M