Caffe中的特殊layer解释

slice:在某一个维度,按照给定的下标,blob拆分成几块。比如要拆分channel,总数50,下标为10,20,30,40,那就是分成5份,每份10个channel,输出5个layer。

concat:在某个维度,将输入的layer组合起来,是slice的逆过程。

split:将blob复制几份,分别给不同的layer,这些上层layer共享这个blob。

tile:将blob的某个维度,扩大n倍。比如原来是1234,扩大两倍变成11223344。

reduction:将某个维度缩减至1维,方法可以是sum、mean、asum、sumsq。

reshape:这个很简单,就是matlab里的reshape。

eltwise:将几个同样大小的layer,合并为1个,合并方法可以是相加、相乘、取最大。

flatten:将中间某几维合并,其实可以用reshape代替。


Slice layer 的作用是将bottom按照需要分解成多个tops。(与split layer的不一样在于spliit的作用是将bottom复制多份,输出到tops) 
首先我们先看一下slice layer 在prototxt里面的书写

layer {
  name: "slice"
  type: "Slice"
  bottom: "input"
  top: "output1"
  top: "output2"
  top: "output3"
  top: "output4"
  slice_param {
    axis: 1
    slice_point: 1
    slice_point: 3
    slice_point: 4
  }
}

这里假设input的维度是N*5*H*W,tops输出的维度分别为N*1*H*W N*2*H*W N*1*H*W N*1*H*W 。 
这里需要注意的是,如果有slice_point,slice_point的个数一定要等于top的个数减一。 
axis表示要进行分解的维度。 
slice_point的作用是将axis按照slic_point 进行分解。 
slice_point没有设置的时候则对axis进行均匀分解。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值