1. 卷积函数tf.nn.conv2d()
tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True,
data_format='NHWC',dilations=[1, 1, 1, 1], name=None)
对于给定的4-D张量输入,利用给定的filter执行2-D卷积运算。
- input : [batch, in_height, in_width, in_channels]
- filter : [filter_height, filter_width, in_channels, out_channels]
- padding: "SAME" / "VALID"
- data_format: Defaults to "NHWC".
算法执行过程:
1.filter压平成2D矩阵,[filter_height * filter_width * in_channels, output_channels]
2.input中提取图像块, [batch, out_height, out_width, filter_height * filter_width * in_channels]
3.对于每一个图像块,右乘滤波器矩阵和图像块向量。
实例:
左边代表input:[BatchSize, H, W, in_Channels]=[24,255,255,3];
右侧代表filter:Batch_size*[Filter_H, Filter_W, in_Channels, out_Channels]=[127,127,3,1];
所以,程序循环24次,即可以完成对一个BatchSize=24的卷积/相关操作,输出结果为: