【问题标题】:Size of Input and ConvNet输入和卷积网络的大小
【发布时间】:2018-03-08 06:24:10
【问题描述】:

关于卷积神经网络的 CS231n 课程中,ConvNet note

  • INPUT [32x32x3] 将保存图像的原始像素值,在这种情况下,图像的宽度为 32,高度为 32,具有三个颜色通道 R、G、B。

  • CONV 层将计算连接到输入中局部区域的神经元的输出,每个神经元计算它们的权重和它们在输入体积中连接到的小区域之间的点积。如果我们决定使用 12 个过滤器,这可能会导致像 [32x32x12] 这样的体积。

从文档中,我了解到 INPUT 将包含 32(宽度)x 32(高度)x 3 深度的图像。但后来在 Conv 层的结果中,它是[32x32x12] if we decided to use 12 filters. 图像深度中的3 在哪里?

请帮帮我,提前谢谢你。

【问题讨论】:

    标签: image neural-network deep-learning conv-neural-network


    【解决方案1】:

    它被“分布”到每个特征图(与过滤器卷积后的结果)。

    在考虑 12 个过滤器之前,先想一个。也就是说,您正在使用 [filter_width * filter_height * input_channel_number] 的过滤器应用卷积。而且由于您的 input_channel_number 与过滤器通道相同,因此您基本上可以在每个输入通道上独立应用 2d 卷积的 input_channel_number ,然后将它们加在一起。结果是一个 2D 特征图。

    现在您可以重复 12 次以获得 12 个特征图并将它们堆叠在一起以获得 [32 x 32 x 12] 特征量。这就是为什么您的过滤器大小是带有 [filter_width * filter_height * input_channel_number * output_channel_number] 的 4D 向量的原因,在您的情况下,这应该类似于 [3x3x3x12] (请注意,不同框架之间的排序可能会有所不同,但操作是相同的)

    【讨论】:

    • 所以输入中的32 与Conv 层结果中的32 不同,对吧?我不知道我是否正确:在过滤器滑动到的每个位置,在感受野中,值 (x*weight) 仅加起来为一个数字。这仍然是数字 32,因为步幅 = 1。
    • 我不确定在这种情况下您如何定义“不同”或“相同”。如果您为卷积使用(它是一个参数,默认为“相同”)填充,Conv Layer 结果中的 32 仍然为 32,如果您使用“有效”,这意味着没有填充,您的输出端将是 32 过滤器大小 + 1(如果使用 3x3 滤波器卷积,则为 30)
    【解决方案2】:

    所以,这很有趣。我再次阅读了该文档,并找到了一些“向下滚动”的答案。之前,我认为过滤器是 32 x 32(无深度)。事实是:

    ConvNet 第一层上的典型过滤器可能具有 5x5x3 的大小(即 5 个像素的宽度和高度,以及 3,因为图像具有深度 3,即颜色通道)。

    在前向传播期间,我们在输入体积的宽度和高度上滑动(更准确地说,卷积)每个过滤器,并计算过滤器条目与任意位置的输入之间的点积。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-02
      • 2018-02-28
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 2023-03-16
      • 2016-10-03
      • 2016-12-27
      相关资源
      最近更新 更多