caffe层解读系列——slice和concat实现MultiTask

最近一段时间MultiTask网络比较流行,比如做人脸检测的时候,一个网络完成(人脸和非人脸)二分类任务的同时也要进行boudingbox回归或者人脸关键点回归。以人脸检测MTCNN为例,一个网络包含三个任务。训练的时候,一个batch中的图片,一部分用于二分类、一部分用于boundingbox 回归,一部分用于关键点回归。这种较复杂的样本组合完全可以通过slice和concat层来快速实现。 ——...
阅读(6599) 评论(2)

caffe层解读系列——Data以及ImageData层用法

直接举一个data层的使用例子:layer { name: "cifar" type: "Data" top: "data" top: "label" include { phase: TRAIN } transform_param { mean_value: 128 mean_value: 128 mean_value: 128 ....
阅读(3213) 评论(12)

caffe层解读系列——hinge_loss

—————————— Hinge Loss 定义 ——————————Hinge Loss 主要针对要求”maximum-margin”的分类问题,因此尤其适用于SVM分类。Hinge Loss的定义如下:\(l(y) = max(0,1-t\cdot y)\)其中, \(t=\pm1\) , 需要注意的是 \(y\) 并不是分类的label,而只是决策函数的输出。例如在线性SVM中, \(y=wx...
阅读(2319) 评论(0)

caffe层解读系列——BatchNorm

之前也写过一篇介绍 Batch Normalization 的文章,原理还不是很清楚的童鞋可以移步看一下。后来看到caffe中的实现,发现还是有很大不同之处,所以这里介绍一些caffe中的BN。 —————————— 可选参数 —————————— 可选参数定义在 src\caffe\proto\caffe.proto 中,共有3个:message BatchNormParameter { //...
阅读(9162) 评论(3)

caffe HDF5Data 层使用及数据生成

有些时候,我们的输入不是标准的图像,而是其它一些格式,比如:频谱图、特征向量等等,这种情况下LMDB、Leveldb以及ImageData layer等就不好使了,这时候我们就需要一个新的输入接口——HDF5Data. (1) 在Matlab中生成HDF5文件这里直接以例子的形式说明如何生成:问题:输入data是512*1的矢量,共1000个样本,label是标量。代码如下:% 创建HDF5文件,包...
阅读(5387) 评论(11)

MATLAB绘制caffe训练日志曲线

公司机器上,我是非管理员账户,python画图缺少一些库,但是又没有权限安装,所以考虑matlab。 使用MATLAB画caffe的训练日志,其实就是找规律; 代码如下:...
阅读(2220) 评论(3)

caffe层解读系列-softmax_loss

Loss Function 可选参数 使用方法 扩展使用Loss Functionsoftmax_loss的计算包含2步:(1)计算softmax归一化概率(2) 计算损失这里以batchsize=1的2分类为例: 设最后一层的输出为[1.2 0.8],减去最大值后为[0 -0.4], 然后计算归一化概率得到[0.5987 0.4013], 假如该图片的label为1,则Loss=-log0....
阅读(18113) 评论(13)

深度学习——MSRA初始化

本次简单介绍一下MSRA初始化方法,方法同样来自于何凯明paper 《Delving Deep into Rectifiers:Surpassing Human-Level Performance on ImageNet Classification》.Motivation MSRA初始化 推导证明 补充说明 Motivation网络初始化是一件很重要的事情。但是,传统的固定方差的高斯分布初始化,在...
阅读(7764) 评论(1)

深度学习——PReLU激活

本次介绍PReLU激活函数以及MSRA初始化方法,方法来自于何凯明paper 《Delving Deep into Rectifiers:Surpassing Human-Level Performance on ImageNet Classification》.PReLU激活PReLU(Parametric Rectified Linear Unit), 顾名思义:带参数的ReLU。二者的定义和区...
阅读(10581) 评论(0)

深度学习——Xavier初始化方法

“Xavier”初始化方法是一种很有效的神经网络初始化方法,方法来源于2010年的一篇论文《Understanding the difficulty of training deep feedforward neural networks》,可惜直到近两年,这个方法才逐渐得到更多人的应用和认可。为了使得网络中信息更好的流动,每一层输出的方差应该尽量相等。基于这个目标,现在我们就去推导一下:每一层的权...
阅读(24019) 评论(9)

caffe添加新层教程

时间节点2016.04,即caffe重大更新后(每一种层都对应一个同名cpp和hpp文件)。描述一下本次要实现层的功能:正向直接copy传播,反向时将梯度放缩指定倍。这个层对一些特定的网络结构有很重要的辅助作用,比如有时我们的网络存在分支,但我们不希望某一分支影响之前层的更新,那么我们就将梯度放缩0倍。(1)创建HPP头文件diff_cutoff_layer.hpp不同功能类型的层所引的头文件也不同...
阅读(18691) 评论(16)
    个人资料
    • 访问:463553次
    • 积分:5483
    • 等级:
    • 排名:第5368名
    • 原创:122篇
    • 转载:11篇
    • 译文:1篇
    • 评论:472条