Tf.nn.max_pool

最近在做一个 CNN。
使用中发现拉伸通过卷积层以传入全连接层的数据,得出的 tensor 大小和我计算的不一样。
debug 了一下,发现问题出在 tf.nn.max_pool ( padding=‘SAME’ ) 中。
padding 明明设置的是 SAME,但图片数据还是按照 VALID 一样缩小了,不知道什么原因。
有大神来解答一下吗?
我用的是 200x200 的图。
filter1 的大小为 7x7


ZMikkelsen, 2018-6-3 09:52:36

Maxpool 的 padding 参数和卷积 padding 是不一样的,最大池化的 same 是在滤波器不整除的情况下补 0 使得整出,而 valid 是舍去。也就是说 same 的大小是值个数和滤波器大小进行取模 +1,valid 是值取模。只要经过池化,都会舍去原图的一些元素。


Raiden 发表于 2018-6-5 17:40:41

+1 max pooling 就是用来减小图片尺寸的呀。
他的 padding 的意义和 conv 不同


舟 3332 发表于 2018-6-8 21:28:46

有可能是你的 stride 设置的不合适?


重庆不热 发表于 2018-7-3 16:22:43

是不是你的 stride 有问题呀,理论上 padding 的确是一样的,有计算公式的


ViolinSolo 发表于 2018-7-3 20:25:39