tf1.9版本以上的conv2d函数存在8个输入参数,但是前4个是各种版本中都一直存在的参数,他们是进行卷积计算的重要的输入参数。input为输入的tensor,filter为滤波器的尺寸,strides为滑动距离表示,padding为边缘的处理机制('VALID'和‘SAME’)。
本文着重介绍不同的padding方式,对输出的数据维度的影响。
常规的计算卷积的输入输出的维度变化的公式为:OUT = (IN-F+2*P)/S+1
VALID:边缘处理时,如果边缘不够一个kernel,会将其丢掉,计算公式为OUT=ceil((IN-F+1)/S),向上取整
SAME:边缘处理时,会增加补0的操作,使边缘能满足一个kernel,计算公式为OUT=ceil(IN/S),向上取整
比如下面的示例代码:
import tensorflow as tf
def conv2d_test():
inp = tf.Variable(tf.random_norm