我正在阅读Deep MNIST for Experts教程。在Densely Connected Layer部分的开头,它说“[...] 图像大小已减小到 7x7”。
我似乎不知道他们是如何得到这个 7x7 矩阵的。据我了解,我们从 28x28 开始,有两层 5x5 卷积核。28 除以 4 是 7,但不能除以 5。
我正在阅读Deep MNIST for Experts教程。在Densely Connected Layer部分的开头,它说“[...] 图像大小已减小到 7x7”。
我似乎不知道他们是如何得到这个 7x7 矩阵的。据我了解,我们从 28x28 开始,有两层 5x5 卷积核。28 除以 4 是 7,但不能除以 5。
5x5 是卷积层的“窗口”大小。它不会减小图像大小:TensorFlow 和 Caffe 等会自动提供边框。举个例子,Torch 需要您添加该边界(在这种情况下,每个方向都有 2 个位置)。
每个内核(过滤器)考虑整个图像的 5x5 子集。例如,为了计算图像中位置 [7, 12] 的值,卷积过程会考虑“窗口”[5:9, 10:14]。它将这 25 个值中的每一个值乘以其相应的权重并将这些乘积相加。这个总和成为中心正方形 [7,12] 的下一层中的值。
对图像中的每个位置以及层中的每个内核都重复此过程。
正如@Aenimated1 已经提到的,大小减少来自两个 2 倍的池。此操作将图像划分为 2x2 窗口,传递每个 2x2 正方形的最大值(或用户指定的其他表示)。这会将 28x28 的图像缩小到 14x14;第二个池将其减少到 7x7。
“图像大小”的减小是在每个卷积层之后添加的池化层的结果。每个 2x2 池将宽度和高度减少 2 倍,因此在两个池操作之后产生一个 7x7 矩阵。