在tensorflow教程的密集连接层部分,它表示图像大小是7 x 7,经过处理.我尝试了代码,似乎这些参数有效.
但我不知道如何获得这个7 x 7尺寸.我明白那个:
max_pool_2x2函数将图像尺寸减小4倍,因此在第一次合并操作后,图像尺寸为7 x 7这是我不理解的东西
在第二CONV层,还有另一个max_pool_2x2函数调用,所以我觉得图像尺寸应的4倍来降低再次.但实际上并没有.
哪一步我错了?
jks*_*hin 24
您还需要知道最大池和卷积的步幅.
def conv2d(x, W):
return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
def max_pool_2x2(x):
return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
strides=[1, 2, 2, 1], padding='SAME')
Run Code Online (Sandbox Code Playgroud)
在这里,我们可以看到卷积的步幅为1,最大池的步幅为2.如何查看最大池,是需要一个2x2的盒子,并将其滑过图像,每次都取最大值超过4个像素.如果你的步幅为2,则每次移动需要2步!图像大小应减少2倍而不是4倍.
换句话说,最大池2x2和步幅2的28x28图片将变为14x14.另一个最大池2x2和步幅2将减少到7x7.
为了进一步说明我的观点,让我们以max pool 2x2和stride 1为例.如果我们不填充图像,它将成为max pool之后的27x27图像.
| 归档时间: |
|
| 查看次数: |
4622 次 |
| 最近记录: |