在MNIST示例中,第一个卷积层接收一个(28,28,1)的特征图,输出(26,26,32)的特征图,即在输入上计算32个过滤器。这32个输出通道,每个通道都包含一个 26X26 的数值网络,它是过滤器对输入的响应图(response map),表示这个过滤器模式在输入中不同位置的相应。
特征图含义:深度轴的每个维度都是一个特征(或过滤器),而2D张量output[:,:,n]是这个过滤器在输入上相应的二维空间图(map)。
卷积有两个关键参数定义:
1、从输入中提取图块尺寸:大小通常是 3X3 或 5X5,常用 3X3;
2、输出特征图的深度:卷积所计算的过滤器数量。
Conv2D(output_depth, (window_height, window_width))
卷积的工作原理:
在 3D 输入特征图上滑动(slide)这些 3×3 或 5×5 的窗口,在每个可能的位置停止并提取周围特征的 3D 图块[形状为(window_height, window_width, input_depth)]。然后每个 3D 图块与学到的同一个权重矩阵[叫作卷积核(convolution kernel)]做张量积,转换成形状为 (output_depth,) 的 1D 向量。然后对所有这些向量进行空间重组,使其转换为形状为 (height, width,output_depth) 的 3D 输出特征图。输出特征图中的每个空间位置都对应于输入特征图中的相同位置(比如输出的右下角包含了输入右下角的信息)。举个例子,利用 3×3 的窗口,向量 output[i, j, :] 来自 3D 图块 input[i-1:i+1,j-1:j+1, :]。
卷积的工作原理.PNG
输出的宽度和高度与输入的宽度和高度可能不同,可能因为两个原因:
1、边界效应,可以通过对输入特征图进行填充来抵消;
2、使用了步幅(stride)。
对于 Conv2D 层,可通过 padding 参数补充。“valid”(默认):表示不使用填充(只使用有效窗口位置);“same”:填充后的宽度和高度与输入相同。
网友评论