gpt4 book ai didi

tensorflow - 如何理解tensorflow教程中的 "Densely Connected Layer"部分

转载 作者:行者123 更新时间:2023-12-03 00:43:43 26 4
gpt4 key购买 nike

Densely Connected Layer在tensorflow教程的部分,它说图像处理后的大小是7 x 7。我尝试了代码,看来这些参数有效。

但我不知道如何获得这个7 x 7尺寸。我的理解是:

  • 原始图像为 28 x 28,
  • 在第一个卷积层中,max_pool_2x2 函数会将图像尺寸减小 4 倍,因此在第一个池化操作之后,图像尺寸为 7 x 7
  • 这是我不明白的地方

    在第二个卷积层中,还有另一个 max_pool_2x2 函数调用,所以我认为图像大小应该再次减小 4 倍。。但实际上并没有。

我哪一步错了?

最佳答案

您还需要知道最大池和卷积的步幅。

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')

在这里,我们可以看到卷积的步长为 1,最大池的步长为 2。如何看待最大池,它需要一个 2x2 的框,并将其在图像上滑动,每次都取超过 4 个像素的最大值。如果你的步幅是 2,那么它每次移动就需要 2 步!图像大小应减小 2 倍,而不是 4 倍。

换句话说,最大池为 2x2、步长为 2 的 28x28 图片将变成 14x14。另一个最大池 2x2 和步幅 2 会将其减少到 7x7。

为了进一步说明我的观点,我们以 max pool 2x2 和 stride 1 为例。如果我们不填充图像,那么在 max pool 之后它将变成 27x27 的图像。

这是一张更完整答案的图片: enter image description here

关于tensorflow - 如何理解tensorflow教程中的 "Densely Connected Layer"部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35034120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com