TensorFlow 如何将图像缩小为 7x7?
How image is reduced to 7x7 by TensorFlow?
我正在阅读教程 Deep MNIST for Experts. At the start of the section Densely Connected Layer,它说“[...] 图像大小已减小到 7x7”。
我似乎无法弄清楚他们是如何得到这个 7x7 矩阵的。据我了解,我们从 28x28 开始,有两层 5x5 卷积核。 28除以4是7,不是除以5
"image size" 的减少是在每个卷积层之后添加的池化层的结果。每个 2x2 池将宽度和高度减少 2 倍,从而在两次池操作后产生一个 7x7 矩阵。
5x5 是卷积层的 "window" 大小。它不会减小图像大小:TensorFlow 和 Caffe 等会自动提供边框填充。举个例子,Torch 要求您添加该边框(在本例中,每个方向有 2 个位置)。
每个内核(过滤器)考虑整个图像的 5x5 子集。例如,要计算图像中位置 [7, 12] 的值,卷积过程会考虑 "window" [5:9, 10:14]。它将这 25 个值中的每一个乘以其相应的权重,然后对这些乘积求和。这个总和成为中心方块 [7,12].
下一层的值
对图像中的每个位置以及层中的每个内核重复此过程。
正如@Aenimated1 已经提到的,尺寸减小来自两个池化,每个池化 2 倍。此操作将图像分成 2x2 windows,并传递每个 2x2 正方形的最大值(或其他表示,如果用户指定)。这会将 28x28 图像缩小为 14x14;第二次合并将其减少到 7x7。
我正在阅读教程 Deep MNIST for Experts. At the start of the section Densely Connected Layer,它说“[...] 图像大小已减小到 7x7”。
我似乎无法弄清楚他们是如何得到这个 7x7 矩阵的。据我了解,我们从 28x28 开始,有两层 5x5 卷积核。 28除以4是7,不是除以5
"image size" 的减少是在每个卷积层之后添加的池化层的结果。每个 2x2 池将宽度和高度减少 2 倍,从而在两次池操作后产生一个 7x7 矩阵。
5x5 是卷积层的 "window" 大小。它不会减小图像大小:TensorFlow 和 Caffe 等会自动提供边框填充。举个例子,Torch 要求您添加该边框(在本例中,每个方向有 2 个位置)。
每个内核(过滤器)考虑整个图像的 5x5 子集。例如,要计算图像中位置 [7, 12] 的值,卷积过程会考虑 "window" [5:9, 10:14]。它将这 25 个值中的每一个乘以其相应的权重,然后对这些乘积求和。这个总和成为中心方块 [7,12].
下一层的值对图像中的每个位置以及层中的每个内核重复此过程。
正如@Aenimated1 已经提到的,尺寸减小来自两个池化,每个池化 2 倍。此操作将图像分成 2x2 windows,并传递每个 2x2 正方形的最大值(或其他表示,如果用户指定)。这会将 28x28 图像缩小为 14x14;第二次合并将其减少到 7x7。