当前位置:   article > 正文

全局平均池化

全局平均池化

 

全局平均池化是在论文Network in Network中提出的,原文中全局平均池化的作用和优点:

å¨è¿éæå¥å¾çæè¿°

思想:对于输出的每一个通道的特征图的所有像素计算一个平均值,经过全局平均池化之后就得到一个 维度=Cin=类别数 的特征向量,然后直接输入到softmax

 

作用:代替全连接层,可接受任意尺寸的图像

 

优点:1)可以更好的将类别与最后一个卷积层的特征图对应起来(每一个通道对应一种类别,这样每一张特征图都可以看成是该类别对应的类别置信图)

2)降低参数量,全局平均池化层没有参数,可防止在该层过拟合

3)整合了全局空间信息,对于输入图片的spatial translation更加鲁棒

 

图解:

 

pytorch的实现:

pytorch中

没有专门的全局平均池化API,但是我们可以使用现有的pooling API实现这个效果

首先我们简单理解全局平均池化操作:
如果有一批特征图,其尺寸为 [ B, C, H, W], 经过全局平均池化之后,尺寸变为[B, C, 1, 1]
也就是说,全局平均池化其实就是对每一个通道图所有像素值求平均值,然后得到一个新的1 * 1的通道图

明白这个思路之后,我们就可以很容易实现全局平均池化了。

利用自适应平均池化就可以快速实现。或者自适应最大池化也可以,一样。

  1. In [1]: import torch
  2. In [2]: a = torch.rand([4,3,4,4])
  3. In [3]: a.size()
  4. Out[3]: torch.Size([4, 3, 4, 4])
  5. In [4]: b = torch.nn.functional.adaptive_avg_pool2d(a, (1,1)) # 自适应池化,指定池化输出尺寸为 1 * 1
  6. In [5]: b.size()
  7. Out[5]: torch.Size([4, 3, 1, 1])


---------------------  
原文:https://blog.csdn.net/CVSvsvsvsvs/article/details/90495254 
 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/92423
推荐阅读
相关标签
  

闽ICP备14008679号