五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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】的評論 (共 條)

分享到微博請遵守國家法律
正定县| 珲春市| 五河县| 来宾市| 革吉县| 东方市| 隆尧县| 陇南市| 泸定县| 大理市| 咸阳市| 华池县| 曲水县| 延长县| 嘉峪关市| 富平县| 类乌齐县| 临沧市| 大理市| 治多县| 科尔| 三原县| 冕宁县| 深圳市| 新安县| 临安市| 顺昌县| 闸北区| 沧州市| 大化| 雷波县| 平阴县| 河津市| 蓝田县| 固始县| 清苑县| 石嘴山市| 衡南县| 大城县| 古浪县| 南昌县|