TensorFlow 中卷积操作和池化操作中都有一个参数 padding,其可选值有 ['VALID', 'SAME']。
在 TensorFlow 文档中只是给出了输出张量的维度计算方式,但是并没有说明当 padding='SAME' 时,如何进行补零操作。
其给出的输出张量的维度计算公式:
VALID 方式:
output_shape[i] = ceil((input_shape[i] - (filter_shape[i] - 1) * dilation_rate[i]) / strides[i]) # 但实际上几乎不会去管 dilation_rate 参数,都是 1,于是 output_shape[i] = ceil((input_shape[i] - filter_shape[i] + 1) / strides[i]) # 上式也是常见的 output_shape[i] = floor((input_shape[i] - filter_shape[i]) / strides[i]) + 1 # 一般我们只对图像平面上做卷积和池化,也就是一般 i 指的是图像平面上的 height 和 width