【问题标题】:How to calculate third element of caffe convnet?如何计算 caffe convnet 的第三个元素?
【发布时间】:2017-11-12 20:54:38
【问题描述】:

按照this 问题和这个tutorial 我已经创建了一个简单的网络,就像教程一样,但有 100X100 图像和 11X11 的第一个卷积核和 pad=0。

我知道公式是:(W−F+2P)/S+1,在我的情况下,尺寸变为 [51X51X3](3 是 rgb 的通道)但数字 96 弹出我的网络图和 tutorial 说它是输出的第三维,另一方面,我的网络在第一次转换后变成了 [51X51X96]。我不知道 96 是如何计算的以及为什么。

网络卷积层是不是假设通过丢三色通道,输出应该是三张特征图?它的维度怎么会长成这样?不是每个通道都有一个内核吗?这个内核如何创建 96 个(或在第一个教程中为 256 或 384 个)特征图?

【问题讨论】:

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


    【解决方案1】:

    您正在混合输入通道和输出通道。
    您的输入图像具有三个通道:R、G 和 B。conv 层中的每个过滤器都作用于这三个通道及其空间内核大小(例如,3×3)。每个过滤器在每个空间位置输出一个单个数字。因此,如果您的图层中有一个过滤器,那么您的输出将只有一个输出通道(!)
    通常,您希望在每一层计算多个过滤器,这就是 num_output 参数在 convolution_param 中的用途:它允许您定义将在特定卷积层中训练多少个过滤器。
    因此一个Conv层

    layer {
      type: "Convolution"
      name: "my_conv"
      bottom: "x"  # shape 3-by-100-by-100
      top: "y"
      convolution_param {
        num_output: 32  # number of filters = number of output channels
        kernel_size: 3
      }
    }
    

    将输出"y",形状为32-by-98-by-98

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 2019-01-15
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多