新了解的几个caffe层

来源:互联网 发布:java声明变量意思 编辑:程序博客网 时间:2024/06/04 20:06

Flatten层:

  例子:

   
layers {  name:"flatten"
  type:“Flatten"
  bottom:"pool"
  top:"flatten"
}

   Flatten层是把输入的大小为n*c*h*w的Blob reshape成另一个向量,其大小为n*(c*h*w)*1*1。

Concat层:
 例子:
layers {  name: "concat"  bottom: "in1"  bottom: "in2"  top: "out"  type: CONCAT  concat_param {    concat_dim: 1  }}

concat_dim:0代表连接num,1代表谅解channels

通过全连接层后的变化:

输入:k个blob的大小分别为ni*ci*h*w

输出:有两种情况

如果concat_dim=0,则输出的Blob的大小为:(n1+n2+.....nk)*c1*h*w,这需要保证所有的输入的ci相同。

如果concat_dim=1,则输出的Blob的大小为:n1*(c1+c2+......nk)*h*w,这需要保证所有的输出的ni相同

通过Concat层,可以把多个blob连接成一个blob。

Eltwise层:

例子:

layers {  name:"fc_all"
  type:"Eltwise"
  bottom:"fc1"
  bottom:"fc2"
  top:"fc_all"
  eltwise_param{
<span style="white-space:pre"></span>operation:SUM
  }
}

Eltwise层实现了将多个blob相加、相乘或者取最大值的操作,默认值为相加。

这里bottom的大小必须相同,top与每个bottom的大小相同。

0 0
原创粉丝点击