【问题标题】:How to use "top" and "bottom" parameters to build network architecture如何使用“top”和“bottom”参数构建网络架构
【发布时间】:2017-08-11 03:06:48
【问题描述】:

在 Caffe prototxt 中,每一层都包含“top”或“bottom”参数来指定层之间的连接。然而,有时,例如,“顶层”是层本身(为什么我们必须将它链接到自身?)或者有几个“顶层”层。 “top”和“bottom”参数的确切含义以及使用它们背后的规则是什么?

【问题讨论】:

    标签: caffe


    【解决方案1】:

    层和 blob 之间存在混淆。

    在 Caffe 中,所有数据都以 blob 的形式表示。每层接收零个或多个 blob,对其进行转换,然后发出零个或多个 blob。例如,ReLU 层接受带有数据的单个 blob,应用函数f(x) = x if x>0, 0 otherwise,并将结果作为单个 blob 输出。用于分类问题的数据层通常有两个输出 blob,一个用于数据,另一个用于标签,并且没有输入 blob。

    blob 被可视化,就好像它们从底部到顶部在网络中移动一样。因此,输入 blob 称为底部 blob,输出 blob 称为顶部 blob。

    现在,在 prototxt 定义中,name 属性存储层的名称。 bottom 属性存储输入 blob 的名称。 top 属性存储输出 blob 的名称,为方便起见,通常将其与层的名称相同。如果该层有多个输入 blob,则有多个 bottom 属性,如果有多个输出 blob,则有多个 top 属性。

    【讨论】:

      【解决方案2】:

      在 Caffe 中:

      1. 层之间的链接的名称(顶部/底部参数)非常重要。
      2. 来自图层的向外链接是“顶部”,而进入图层的传入链接是“底部”。因此,一层的顶部作为底部连接到另一层。有点像两个城镇(层)之间的高速公路(顶部/底部)。 Caffe 根据您的顶部/底部链接的名称确定您的网络结构。
      3. 层本身的名称远没有那么重要,并且不携带结构信息。你只需要这些是明智和独特的。同一条高速公路承载着两个城镇之间的交通,无论它们如何命名。
      4. Layers 和 top/bottoms 的命名空间是分开的。因此,您可以将图层命名为顶部或底部。这并不意味着什么。但这令人困惑,应该避免。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        相关资源
        最近更新 更多