什么是自适应平均池化以及它是如何工作的?

XXD*_*XXD 26 python math neural-network deep-learning pytorch

我最近在尝试实现 AlexNet 时在 Pytorch 中遇到了一种方法。我不明白它是如何工作的。请用一些例子解释它背后的想法。以及它在神经网络功能方面与 Maxpooling 或 Average poling 的区别

nn.AdaptiveAvgPool2d((6, 6))

小智 47

在平均池化或最大池化中,您本质上是自己设置步幅和内核大小,将它们设置为超参数。如果您碰巧更改了输入大小,则必须重新配置它们。

另一方面,在自适应池中,我们改为指定输出大小。并且会自动选择 stride 和 kernel-size 以适应需要。以下等式用于计算源代码中的值。

Stride = (input_size//output_size)  
Kernel size = input_size - (output_size-1)*stride  
Padding = 0
Run Code Online (Sandbox Code Playgroud)

  • 找到另一个[答案](/sf/answers/4452279541/),解释了这个公式仅适用于输入大小是第二维的整数倍的情况。否则,计算输出尺寸时出现的地板效应将导致该公式无效。 (3认同)