【问题标题】:Dimensions in convolutional neural network卷积神经网络中的维度
【发布时间】:2017-07-31 10:25:25
【问题描述】:

我试图了解卷积神经网络中的维度是如何表现的。在下图中,输入是具有 1 个通道的 28×28 矩阵。然后是 32 个 5×5 过滤器(高度和宽度的步幅为 2)。所以我知道结果是 14×14×32。但是在下一个卷积层中,我们有 64 个 5×5 过滤器(同样步长为 2)。那么为什么结果是 7×7×64 而不是 7×7×32*64?我们不是将 64 个过滤器中的每一个都应用到 32 个通道中的每一个吗?

【问题讨论】:

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


【解决方案1】:

一个过滤器是前一层中所有维度的总和。这意味着 5x5 过滤器对所有 32 个维度求和,本质上是 32*5*5 值的加权和。但是,权重值是跨维度共享的。然后有64个这样的过滤器。可以在这里找到更好的图像解释:http://cs231n.github.io/convolutional-networks/

【讨论】:

    【解决方案2】:

    here清楚地解释了输入的大小如何随着层间的进行而变化。

    在输入中,您给出的尺寸是 28 宽和 28 高和深度为 1。对于 layer1 中的过滤器,过滤器的深度尺寸必须等于输入的深度。因此过滤器的维度将为 5x5x1,应用一个过滤器,维度会减少(由于步幅)以生成 14x14x1 维度的激活图,因此应用 32 个此类过滤器将为您提供 32 个激活图。结合所有这些 14x14x32 是第 1 层的输出并输入到您的第二层。再次在第二层中,您需要在该层上应用维度为 5(width)x5(height)x32(depth) 的过滤器以生成一个 14x14x1 的激活图,堆叠所有 64 个激活图为您提供第二层的输出维度为14x14x64 等等。

    是的,您实际上在 32 个通道上分别应用了 64 个过滤器。

    【讨论】:

    • 根据问题中的图像,我们必须应用 5(width)x5(height)x64(depth) 的过滤器,您给定的深度为 32。
    【解决方案3】:

    深度通常是隐式给出的。 例如,许多图像被认为具有深度 3(对于每个像素中的三个颜色维度)。然后我们所说的 5x5 过滤器是指 5x5x3 过滤器。 在您的情况下,5x5-Filter 实际上是一个 5x5x32 过滤器。

    深度一通常是明确规定的(如“5x5x1 过滤器”)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 2021-12-15
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多