如何使用" top"和"底部"用于构建网络架构的参数

时间:2017-08-11 03:06:48

标签: caffe

在Caffe原型文本中,每一层都包括" top"或"底部"用于指定图层之间连接的参数。然而,有时会出现例如" top"是层本身(为什么我们必须将它链接到自身?)或者有几个" top"层。 " top"的确切含义是什么?和"底部"参数和使用它们的规则?

2 个答案:

答案 0 :(得分:12)

层和blob之间存在混淆。

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

blob可视化,就像它们从底部到顶部穿过网络一样。因此,输入blob称为底部blob,输出blob称为顶部blob。

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

答案 1 :(得分:3)

在Caffe:

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