【发布时间】:2017-08-11 03:06:48
【问题描述】:
在 Caffe prototxt 中,每一层都包含“top”或“bottom”参数来指定层之间的连接。然而,有时,例如,“顶层”是层本身(为什么我们必须将它链接到自身?)或者有几个“顶层”层。 “top”和“bottom”参数的确切含义以及使用它们背后的规则是什么?
【问题讨论】:
标签: caffe
在 Caffe prototxt 中,每一层都包含“top”或“bottom”参数来指定层之间的连接。然而,有时,例如,“顶层”是层本身(为什么我们必须将它链接到自身?)或者有几个“顶层”层。 “top”和“bottom”参数的确切含义以及使用它们背后的规则是什么?
【问题讨论】:
标签: caffe
层和 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 属性。
【讨论】:
在 Caffe 中:
【讨论】: