最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

22 池化層【動手學深度學習v2】

2023-07-21 15:13 作者:月蕪SA  | 我要投稿

卷積層對矩陣中的位置信息非常敏感:例如在檢測垂直邊緣問題中,只有識別出的垂直邊緣會置1,其余部分全為0,在實際應用中,會因為照明等因素邊緣會過于敏感(邊緣過薄)

池化層:降低卷積層對位置信息的過度敏感性

池化層種類:

1.二位最大池化:取池化窗口中的最大值

最大池化層應用例:對卷積輸出進行一次二位最大池化,使邊緣可容1像素移位。

注:池化層沒有可學習的參數(shù),且池化層輸出通道數(shù)=輸入通道數(shù)

2.平均池化層



代碼實現(xiàn)

輸出池化窗口中的最大值或平均值

import torch
from torch import nn
from d2l import torch as d2l

def pool2d(X, pool_size, mode='max'):
    p_h, p_w = pool_size
    Y = 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.0, 1.0, 2.0], [3.0, 4.0, 5.0], [6.0, 7.0, 8.0]])
pool2d(X, (2, 2))


tensor([[4., 5.],
        [7., 8.]])


驗證平均匯聚層。

pool2d(X, (2, 2), 'avg')


tensor([[2., 3.],
        [5., 6.]])


用深度學習框架中內置的二維最大匯聚層,來演示匯聚層中填充和步幅的使用。 我們首先構造了一個輸入張量X,它有四個維度,其中樣本數(shù)和通道數(shù)都是1。

X = torch.arange(16, dtype=torch.float32).reshape((1, 1, 4, 4))
X


tensor([[[[ 0.,  1.,  2.,  3.],
          [ 4.,  5.,  6.,  7.],
          [ 8.,  9., 10., 11.],
          [12., 13., 14., 15.]]]])

默認情況下,深度學習框架中的步幅與匯聚窗口的大小相同(為了不重復池化)。 因此,如果我們使用形狀為(3,?3)的匯聚窗口,那么默認情況下,我們得到的步幅形狀為(3,?3)。


pool2d = nn.MaxPool2d(3)
pool2d(X)


tensor([[[[10.]]]])


填充和步幅可以手動設定。

pool2d = nn.MaxPool2d(3, padding=1, stride=2)
pool2d(X)


tensor([[[[ 5.,  7.],
          [13., 15.]]]])

當然,我們可以設定一個任意大小的矩形匯聚窗口,并分別設定填充和步幅的高度和寬度。

pool2d = nn.MaxPool2d((2, 3), stride=(2, 3), padding=(0, 1))
pool2d(X)


tensor([[[[ 5.,  7.],
          [13., 15.]]]])


在處理多通道輸入數(shù)據(jù)時,匯聚層在每個輸入通道上單獨運算,而不是像卷積層一樣在通道上對輸入進行匯總。 這意味著匯聚層的輸出通道數(shù)與輸入通道數(shù)相同。 下面,我們將在通道維度上連結張量XX?+?1,以構建具有2個通道的輸入。

X = torch.cat((X, X + 1), 1)
X


tensor([[[[ 0.,  1.,  2.,  3.],
          [ 4.,  5.,  6.,  7.],
          [ 8.,  9., 10., 11.],
          [12., 13., 14., 15.]],

         [[ 1.,  2.,  3.,  4.],
          [ 5.,  6.,  7.,  8.],
          [ 9., 10., 11., 12.],
          [13., 14., 15., 16.]]]])


如下所示,匯聚后輸出通道的數(shù)量仍然是2。

pool2d = nn.MaxPool2d(3, padding=1, stride=2)
pool2d(X)


tensor([[[[ 5.,  7.],
          [13., 15.]],

         [[ 6.,  8.],
          [14., 16.]]]])


補充知識:

池化層通常放在卷積層后

隨著機器算力的提高,池化層作為節(jié)省算力的技術應用的越來越少了










22 池化層【動手學深度學習v2】的評論 (共 條)

分享到微博請遵守國家法律
慈溪市| 芦山县| 彝良县| 普洱| 饶平县| 威远县| 尤溪县| 库车县| 黄平县| 广西| 临湘市| 油尖旺区| 抚顺县| 勃利县| 阜南县| 灌阳县| 南平市| 县级市| 咸阳市| 武冈市| 汶川县| 和硕县| 石阡县| 乐都县| 定州市| 娱乐| 徐汇区| 日喀则市| 平顶山市| 额济纳旗| 互助| 阿尔山市| 富源县| 石景山区| 新河县| 观塘区| 汾西县| 平利县| 乳源| 北辰区| 九台市|