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

最近我用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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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