【问题标题】:How do I Locate/Specify the Size of Pooling Layers in Caffe如何在 Caffe 中定位/指定池化层的大小
【发布时间】:2016-10-09 06:20:52
【问题描述】:

我的团队一直在研究 Caffe 的 MNIST 示例,并且能够定位/指定神经网络的某些层(如卷积层)中的神经元/过滤器的数量,这些层由称为 num_output 的参数引用。 但是,池化层似乎没有指定它们拥有/我们可以调整的输出数量。 有什么方法可以定位这些信息,以便我能够知道 MNIST 示例神经网络的每一层中存在多少个神经元?

另外,第 1 个卷积层的 num_output = 20,第 2 个卷积层的 num_output = 50。这种层深度的跳跃是如何产生的?我认为这是因为卷积层 1 和 2 之间的池化层,但我还是不明白池化层有多少过滤器。

【问题讨论】:

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


    【解决方案1】:

    您必须了解池化层是一种特殊的层,其主要目的是降低卷积层输出的维度。

    池化层的输出是其参数的函数 - 内核大小、填充和步幅,以及卷积层输出的大小。内核的宽度为W,高度为H,填充Ph, Pw,步幅为Sh, Sw,它从大小为Wc x Hc x Dc的卷积层产生输出:

    1. Width = (Wc + 2 * Pc - W) / Sw + 1
    2. Height = (Hc + 2 * Ph - H) / Sh + 1
    3. Depth = Dc

    您可以阅读参数的详细说明here和池操作的详细信息here

    【讨论】:

    • 所以池化层考虑了它的参数和它之前的卷积层的维度,并使用它们来指定自己的维度,是吗?但是如果池化层降低了卷积输出的维度,那么网络是如何从卷积层1(大小20)->池化层->卷积层2(大小50)开始的呢?谢谢。
    • Num_out 是过滤器的数量。它可以设置为任意数字。网络的设计者将其设置为 50,这就是大小保持不变的原因:)
    • 好的。我现在明白了很多。谢谢!
    猜你喜欢
    • 2018-11-04
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 2019-02-27
    • 1970-01-01
    • 2013-06-01
    相关资源
    最近更新 更多