在CNN中的卷积层或池化层,涉及到padding方式的选择,即对应tensorflow中tf.nn.conv2d()与tf.nn.max_pool()中padding的参数选择.
padding = ‘VALID’ 时,没有填充.因此输出的size总比原图的size小.
如图,3*3的模板作用在7*7的图像上,当步长/stride为1时:
由于没有填充,最终得到的就是虚线中的灰色区域即5*5大小.padding = ‘SAME’ 时,用0填充边界.能覆盖原图所有像素,不会舍弃边上的元素;当步长/stride为1时,输出和原图size一致;
如图,3*3的模板作用在7*7的图像上,步长/stride为1时:
由于有0填充边界,最终得到的就是虚线中的灰色区域即7*7大小.
5*5的模板作用在7*7的图像上,步长/stride为1时:
Theano文档中介绍的比较详细:
Theano:Convolution arithmetic tutorial
stackoverflow中的相关问题