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)

# 可以实现不同计算方式的池化
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值