Slice Layer 的作用是将bottom按照需要切分成多个tops,一般特点是:一个输入多个输出

首先我们先看一下 SliceParameter

message SliceParameter {// The axis along which to slice -- may be negative to index from the end// (e.g., -1 for the last axis).   //-1表示最后一个维度// By default, SliceLayer concatenates blobs along the "channels" axis (1).   //默认按通道切分optional int32 axis = 3 [default = 1];repeated uint32 slice_point = 2;// DEPRECATED: alias for "axis" -- does not support negative indexing. //该参数 已弃用optional uint32 slice_dim = 1 [default = 1];
}

slice layer 在prototxt里面的书写:

layer {name: "slice"type: "Slice"bottom: "input"   #假设维度:N×5×H*Wtop: "output1"    #N×1×H*Wtop: "output2"    #N×2×H*Wtop: "output3"    #N×1×H*Wtop: "output4"    #N×1×H*Wslice_param {axis: 1   #axis:切分的维度轴; 1:表示按通道切分,CNN网络常用#slice_point: 表示切分的位置,如当前:slice_point: 1   #1:表示将input从通道1的位置切分,将通道1及之前的通道赋值给output1slice_point: 3   #3:表示将input从通道3的位置切分,将通道3及上一个slice_point之间的通道赋值给output2slice_point: 4   #4:表示将input从通道4的位置切分,将通道4及上一个slice_point之间的通道赋值给output3#最后将通道4之后的通道赋值给output4}
}

值得注意的是,如果有slice_point,slice_point的个数一定要等于top的个数-1;有点类似刀切豆腐,同一维度切3刀,得4块豆腐;
axis表示要进行分解的维度;
slice_point的作用是将axis按照slic_point 进行分解;
slice_point没有设置的时候则对axis进行均匀分解;

举个例子:

layer {name: "vec_weight"type: "Slice"bottom: "label"     #N×114×H*Wtop: "vec_weight"top: "heat_weight"top: "vec_temp"top: "heat_temp"slice_param {slice_point: 38slice_point: 57slice_point: 95axis: 1}
}

top输出:

  top: "vec_weight"   #N×38×H*Wtop: "heat_weight"  #N×19×H*Wtop: "vec_temp"     #N×38×H*Wtop: "heat_temp"    #N×19×H*W

Caffe Prototxt 特殊层系列:Slice Layer相关推荐

  1. Caffe Prototxt 特殊层系列:Crop Layer

    Crop Layer:剪切 一般:输入(bottom blobs)有两个,输出一个(top blobs) 我们假设输入:A,B,输出:C 即将A在参数控制下,按照B的参数进行剪切,输出给C 首先我们先 ...

  2. 在caffe中添加新层 L1 Loss layer

    本文地址:http://blog.csdn.net/ismarvellous/article/details/79069661,转载请注明出处. 本文涉及的所有完整文件可在我的github下载. 1. ...

  3. caffe 添加自定义层(custom layer)

    在<剖析Caffe源码之Layer>可以知道layer是所有层的基类,由此类派生出各种不同的不同的层,其如下图所示: 由此扩展出了各种不同的层,基本能满足要求,但是有时候在搭建拓扑网络时, ...

  4. 转载 解密蓝牙mesh系列 | 第七篇【低功耗蓝牙】【承载层(bearer layer)】【节点与特性】【代理节点(Proxy Node)】【蓝牙mesh代理服务】【发现代理节点】【代理协议】

    SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机.32位ARM Cortex-M0处理器.128kB Flash存储器.以及丰富的数字接口.SYD8801片上集成了 ...

  5. caffe slice layer 学习

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

  6. caffe网络模型各层详解(中文版)

    caffe网络模型各层详解(中文版) 参考网址:https://blog.csdn.net/qq_34220460/article/details/79872830 一.数据层及参数 要运行caffe ...

  7. caffe中各层的作用

    caffe中各层的作用: 关于caffe中的solver: cafffe中的sover的方法都有: Stochastic Gradient Descent (type: "SGD" ...

  8. caffe prototxt 可视化工具

    一个caffe prototxt在线可视化工具:http://ethereon.github.io/netscope/#/editor 直接将prototxt文件内容复制到左边即可 下面是LeNet- ...

  9. Caffe中BN层与CONV层的融合(merge_bn)

    半年前写的博客,今天发现没有发出去,还好本地有md的文档,决定重新发一下 毕竟网上来回抄袭的blog太多了,代码质量也莫得保证 今天需要用pytorch融合下bn层,写个脚本稍后再传到csdn上 原理 ...

最新文章

  1. 凯文·凯利:下一个5000天的12个必然趋势!
  2. ArrayList不是并发安全的?那么在高并发环境下怎么使用集合
  3. php商品数量怎么用js,如何使用js统计页面标签数量
  4. 缓存三大问题及解决方案
  5. svn之Previous operation has not finished; run ‘cleanup‘ if it was interrupted解决办法
  6. 【canvas系列】canvas实现“ 简单的Amaziograph效果”--画对称图【强迫症福利】
  7. Office web app server2013详细的安装和部署
  8. 解决:Unknown custom element: <myData> - did you register the component correctly? For recursive compon
  9. MySQL实验: 实践索引对全列匹配、最左前缀匹配、范围查询等条件的影响以及了解脏读、幻读等...
  10. java前端框架有哪些_web前端框架有哪些
  11. 将读书笔记自动生成思维导图(Markdown)
  12. 虚拟机IP地址和主机IP不在同一个网段
  13. java混淆工具zelix比较_Java混淆器和java混淆编译
  14. AutoCAD二次开发基础(一):基础使用
  15. 【Python+QGIS将地名批量标注于高德地图】
  16. Python最新就业信息
  17. 重启计算机关闭账户,电脑开机重启提示您的账户已被停用怎么办
  18. 路由方案之ARouter源码分析
  19. Canvas科幻网状波浪动画效果
  20. 人工智能AI程序设计语言简介

热门文章

  1. 搜狗输入法也在挑战国人的智商!
  2. 《小白HTML5成长之路38》插入视频的功能好简单
  3. 理财学习06-定投选择
  4. 中学教学参考杂志中学教学参考杂志社中学教学参考编辑部2022年第9期目录
  5. 用std::string::compare()用法
  6. 快来领取哔哩哔哩525张超清壁纸!官方壁纸娘壁纸资源(2020年01月04日更新)
  7. C语言函数大全(上)-ABCDEFGHIKL
  8. 一文读懂 SAP 全球认证
  9. request.getParameterMap()用法详解
  10. 计算机安全会议(学术界)概念普及 ASIACCS2015会议总结(移动安全部分)