PyTorch 里 nn.AdaptiveAvgPool2d 原理是什么?
问题来源:知乎
tom Thomas 的解答来源:PyTorch 论坛
例子解释
14 个数变 4 个,首先(14 + 4 - 1) / 4 = 4,所以 stride 是 4;
[0, 13] 去掉最后四个数10、11、12、13,得到剩余的区间[0, 10);
[0, 10)分三份,分段点为0, 3.33333, 6.66666, 10;
四舍五入就是 0,3,7,10;
分别加上 stride 得到:
[0, 4)、[3, 7)、[7, 11)、[10, 14)四个区间,就是用来 pooling 的区间了;
其中,首尾两个区间中的 3 和10 重叠。