tf.nn.conv2d(input_batch, kernel, strides = [1,2,3,1], padding = 'SAME')
参数input_batch:准备进行卷积的张量,如input_batch = tf.constant([
[ # 第一个输入
[[0.0], [1.0]],
[[2.0], [3.0]]
],
[ # 第二个输入
[[2.0], [4.0]],
[[6.0], [8.0]]
]
])
参数kernel:用于卷积的核(矩阵),如kenel = tf.constant([[[[1.0, 2.0]]]])
参数strides:strides参数表示的是滑窗在输入张量各个维度上的移动步长,包含四个参数,与输入向量格式相同,[batch, height, width, channels],如[1,3,3,1]
参数解析:
batch:strides[0] = 1,也即在 batch 维度上的移动为 1,也就是不跳过任何一个样本,否则当初也不该把它们作为输入(input)
height, width:单个样本的行和列维度的移动
channels:strides[3] = 1,也即在 channels 维度上的移动为 1,也就是不跳过任何一个颜色通道;
参数padding:边界填充
SAME:卷积输出与输入尺寸相同,缺失采用0填充,卷积核扫过的像素数超过图像实际像素。如:out_height = ceil(float(in_height) / float(strides[1]))
VALID:考虑滤波器尺寸,卷积核尽量不越过边界,多余部分可能丢失。如:out_height = ceil(float(in_height - filter_height + 1) / float(strides1))