多任务学习
来源:互联网 发布:mysql 数据库重命名 编辑:程序博客网 时间:2024/06/05 20:00
最近一段时间MultiTask网络比较流行,比如做人脸检测的时候,一个网络完成(人脸和非人脸)二分类任务的同时也要进行boudingbox回归或者人脸关键点回归。
以人脸检测MTCNN为例,一个网络包含三个任务。训练的时候,一个batch中的图片,一部分用于二分类、一部分用于boundingbox 回归,一部分用于关键点回归。这种较复杂的样本组合完全可以通过slice和concat层来快速实现。
———————— Concat —————————
concat层实现输入数据的拼接。
该层有两个相同作用的参数:
message ConcatParameter { //指定拼接的维度,默认为1即以channel通道进行拼接;支持负索引,即-1表示最后一个维度 optional int32 axis = 2 [default = 1]; // 以后会被弃用,作用同axis一样,但不能指定为负数 optional uint32 concat_dim = 1 [default = 1];}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
caffe中数据通常为4个维度,即 num×channels×height×width(function () {,因此默认值1表示channels通道进行拼接。
使用方法如下
layer { name: "data_all" type: "Concat" bottom: "data_classfier" bottom: "data_boundingbox" bottom: "data_facialpoints" top: "data_all" concat_param { axis: 0 }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
除了拼接维度外的其它维度都必须相等。比如上面,输入图像均为
————————— Slice —————————
既然有合并,那么相应的也有拆分。slice层共有三个参数:
message SliceParameter { // 下面两个指定沿哪个维度进行拆分,默认拆分channels通道 optional int32 axis = 3 [default = 1]; optional uint32 slice_dim = 1 [default = 1]; // 指定拆分点 repeated uint32 slice_point = 2;}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
现在我们就要把之前concat合并的数据按照原样拆分:
layer { name: "data_each" type: "Slice" bottom: "data_all" top: "data_classfier" top: "data_boundingbox" top: "data_facialpoints" slice_param { axis: 0 slice_point: 150 slice_point: 200 }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
其中slice_point的个数必须等于top的个数减一。输入的data_all维度为 250×3×24×24
————————— MultiTask —————————
下面直接给一张网络结构图,大家就应该知道怎么实现多数据MultiTask了。
- ').addClass('pre-numbering').hide();
阅读全文
0 0
- 多任务深度学习
- 多任务学习代码
- 多任务深度学习
- 多任务学习
- Tensorflow 多任务学习
- 多任务学习进化史
- 多任务学习
- 多任务学习经典帖子
- iOS多任务学习记录
- 多任务深度学习代码
- 多任务学习-Multitask Learning
- caffe2实现多任务学习
- 神经网络中的多任务学习
- 学习任务
- 学习任务
- 学习任务
- 学习任务
- 多线程多任务学习笔记(一)
- 【产品介绍】前端CronExpression生成表单插件
- 62. Unique Paths
- android studio中修改compileSdkVersion的问题(个人总结)
- 第1章 JavaScript概述
- 【网络】网络流:最大流最小割问题
- 多任务学习
- 1204#POJ2941 Homogeneous
- 【Scikit-Learn 中文文档】三十五:无监督降维
- Hibernate的学习笔记
- MySQL外键约束删除时和更新时各取值的含义
- java 根据数据表实现增删改查代码自动生成
- 应用matlab多项式的表示以及运算
- python自学笔记(5)--python函数基础
- xcode真机调试包(持续更新,最新11.2)