什么是带填充的平均池化的期望行为?

最近我用pytorch训练了一个神经网络,其中包含一个带填充的平均池化层。我对其行为以及带填充的平均池化的定义感到困惑。

例如,如果我们有一个输入张量:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

当填充为1且核大小为3时,第一个核的输入应该是:

 0, 0, 0 0, 1, 2 0, 4, 5

pytorch的输出是12/4 = 3(忽略填充的0),但我认为应该是12/9 = 1.333

谁能解释一下这个问题吗?

非常感谢。


回答:

你可以决定你的填充池化层的行为。
这就是为什么pytorch的平均池化(例如,nn.AvgPool2d)有一个可选参数count_include_pad=True
默认情况下(True),平均池化会先填充输入,然后将所有元素视为相同。在这种情况下,你的示例输出确实是1.33。
另一方面,如果你设置count_include_pad=False,池化层将忽略填充的元素,你的示例结果将是3。

Related Posts

如何从数据集中移除EXIF数据?

我在尝试从数据集中的图像中移除EXIF数据(这些数据将…

用于Python中的“智能点”游戏的遗传算法不工作

过去几天我一直在尝试实现所谓的“智能点”游戏。我第一次…

哪个R平方得分更有帮助?

data.drop(‘Movie Title’, ax…

使用线性回归预测GRE分数对录取率的影响

我正在学习线性回归,并尝试在Jupyter笔记本中用P…

使用mlrMBO贝叶斯优化进行SVM超参数调优时出现错误

我试图针对一个分类任务优化SVM,这个方法在许多其他模…

Keras模型的二元交叉熵准确率未发生变化

我在网上看到了很多关于这个问题的提问,但没有找到明确的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注