Pytorch官方文檔(十)翻譯版本——池化

Pytorch官方文檔(十)翻譯版本

torch.nn.MaxPool2d

作用:

  • 對由多個輸入平面組成的輸入Tensor應用2維 max池化,就是說在一個卷積核內部,只取最大的那個數作爲輸出結果。
  • 在最簡單的情況下,輸入大小爲(N, C, H, W)、輸出爲(N, C, Hout, Wout)並且kernel_size爲(KH, KW)的層可以被精確地描述爲:
    在這裏插入圖片描述
    參數:
  1. kernel_size,應用maxpool操作的窗口大小
  2. stride,窗口的步長,默認值時kernel_size,步長的意思是窗口每次移動的距離。
  3. padding,兩邊要添加的隱式零填充。
  4. dilation,控制窗口元素步長的參數。
  5. return_indices,如果True,將沿着輸入返回最大的下標。
  6. ceil_mode,True,將會使用ceil代替floor完成計算。

例子:

m = nn.MaxPool2d(3, stride=2)

input = torch.randn(20, 16, 11, 11)
output = m(input)

print(output.size())

# 輸出結果
torch.Size([20, 16, 5, 5])
# 可以看到  這個就是大家最瞭解的最大池化了

在這裏插入圖片描述
上圖爲官方文檔中給出的公式,鑑於dilation基本爲1,所以公式變形爲:Hout = [(Hin + 2*p - kernel_size) / stride ]+ 1

torch.nn.AvgPool2d

  • 名叫平均池化,對輸入2維Tensor做池化,與上面的最大池化差不多,只有計算方式有不同。
  • 平均池化的計算方式爲,在一個卷積核內,將所有數計算平均值作爲輸出的結果。

torch.nn.LPPool2d

作用:

  • 定義了一個新的池化函數,函數表達式如下:
    在這裏插入圖片描述
  • 當 p=∞ 時,此函數與最大池化功能相同;當 p=1時,此函數相當於求和池化。
  • 可以看到,這樣的選取更加自由。

參數:

  1. kernel_size, 窗口的大小。
  2. stride,步長。
  3. ceil_mode,True,將會使用ceil代替floor完成計算。

例子:

>>> # power-2 pool of square window of size=3, stride=2
>>> m = nn.LPPool2d(2, 3, stride=2)
>>> # pool of non-square window of power 1.2
>>> m = nn.LPPool2d(1.2, (3, 2), stride=(2, 1)) # 窗口內所有數1.2次冪求和開1.2次方
>>> input = torch.randn(20, 16, 50, 32)
>>> output = m(input)

# 可以實現不同計算方式的池化
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章