Caffe学习笔记7:其他常用层和参数
2016-08-12 14:48
218 查看
小菜在这里讲解一些其它的常用层,包括:softmax_loss、Inner Product、accuracy、reshape、dropout层及其它们的参数配置。
1、softmax-loss
小菜没有仔细去研究softmax-loss和softmax的区别,softmax-loss层和softmax层计算大致是相同的。softmax是一个分类器,计算的是类别的概率(Likelihood),是LogisticRegression
的一种推广。Logistic Regression 只能用于二分类,而softmax可以用于多分类。
softmax与softmax-loss的区别:
softmax计算公式:
而softmax-loss计算公式:
用户可能最终目的就是得到各个类别的概率似然值,这个时候就只需要一个 Softmax层,而不一定要进行softmax-Loss操作;或者是用户有通过其他什么方式已经得到了某种概率似然值,然后要做最大似然估计,此时则只需要后面的 softmax-Loss 而不需要前面的Softmax 操作。因此提供两个不同的 Layer 结构比只提供一个合在一起的 Softmax-Loss Layer 要灵活许多。
不管是softmax layer还是softmax-losslayer,都是没有参数的,只是层类型不同而已。
softmax-loss layer:输出loss值
2、Inner Product
全连接层,把输入当作成一个向量,输出也是一个简单向量(把输入数据blobs的width和height全变为1)。
输入: n*c0*h*w
输出: n*c1*1*1
全连接层实际上也是一种卷积层,只是它的卷积核大小和原数据大小一致。因此它的参数基本和卷积层的参数一样。
层类型:InnerProduct
lr_mult: 学习率的系数,最终的学习率是这个数乘以solver.prototxt配置文件中的base_lr。如果有两个lr_mult, 则第一个表示权值的学习率,第二个表示偏置项的学习率。一般偏置项的学习率是权值学习率的两倍。
必须设置的参数:
num_output: 过滤器(filfter)的个数
其它参数:
Ø weight_filler: 权值初始化。 默认为“constant",值全为0,很多时候我们用"xavier"算法来进行初始化,也可以设置为”gaussian"。
Ø bias_filler: 偏置项的初始化。一般设置为"constant",值全为0。
Ø bias_term: 是否开启偏置项,默认为true,开启。
3、accuracy
输出分类(预测)精确度,只有test阶段才有,因此需要加入include参数。
层类型:Accuracy
4、reshape
在不改变数据的情况下,改变输入的维度。
层类型:Reshape
先来看例子:
有一个可选的参数组shape, 用于指定blob数据的各维的值(blob是一个四维的数据:n*c*w*h)。
Ø dim:0 表示维度不变,即输入和输出是相同的维度;
Ø dim:2 或 dim:3 将原来的维度变成2或3;
Ø dim:-1 表示由系统自动计算维度。数据的总量不变,系统会根据blob数据的其它三维来自动计算当前维的维度值;
假设原数据为:64*3*28*28, 表示64张3通道的28*28的彩色图片,经过reshape变换:
输出数据为:64*3*14*56。
5、Dropout
Dropout是一个防止过拟合的trick。可以随机让网络某些隐含层节点的权重不工作。
先看例子:
只需要设置一个dropout_ratio就可以了。还有其它更多的层,但用的地方不多,小菜就不一一介绍了。随着深度学习的深入,各种各样的新模型会不断的出现,因此对应的各种新类型的层也在不断的出现。这些新出现的层,我们只有在等caffe更新到新版本后,再去慢慢地摸索了。
1、softmax-loss
小菜没有仔细去研究softmax-loss和softmax的区别,softmax-loss层和softmax层计算大致是相同的。softmax是一个分类器,计算的是类别的概率(Likelihood),是LogisticRegression
的一种推广。Logistic Regression 只能用于二分类,而softmax可以用于多分类。
softmax与softmax-loss的区别:
softmax计算公式:
而softmax-loss计算公式:
用户可能最终目的就是得到各个类别的概率似然值,这个时候就只需要一个 Softmax层,而不一定要进行softmax-Loss操作;或者是用户有通过其他什么方式已经得到了某种概率似然值,然后要做最大似然估计,此时则只需要后面的 softmax-Loss 而不需要前面的Softmax 操作。因此提供两个不同的 Layer 结构比只提供一个合在一起的 Softmax-Loss Layer 要灵活许多。
不管是softmax layer还是softmax-losslayer,都是没有参数的,只是层类型不同而已。
softmax-loss layer:输出loss值
2、Inner Product
全连接层,把输入当作成一个向量,输出也是一个简单向量(把输入数据blobs的width和height全变为1)。
输入: n*c0*h*w
输出: n*c1*1*1
全连接层实际上也是一种卷积层,只是它的卷积核大小和原数据大小一致。因此它的参数基本和卷积层的参数一样。
层类型:InnerProduct
lr_mult: 学习率的系数,最终的学习率是这个数乘以solver.prototxt配置文件中的base_lr。如果有两个lr_mult, 则第一个表示权值的学习率,第二个表示偏置项的学习率。一般偏置项的学习率是权值学习率的两倍。
必须设置的参数:
num_output: 过滤器(filfter)的个数
其它参数:
Ø weight_filler: 权值初始化。 默认为“constant",值全为0,很多时候我们用"xavier"算法来进行初始化,也可以设置为”gaussian"。
Ø bias_filler: 偏置项的初始化。一般设置为"constant",值全为0。
Ø bias_term: 是否开启偏置项,默认为true,开启。
3、accuracy
输出分类(预测)精确度,只有test阶段才有,因此需要加入include参数。
层类型:Accuracy
4、reshape
在不改变数据的情况下,改变输入的维度。
层类型:Reshape
先来看例子:
有一个可选的参数组shape, 用于指定blob数据的各维的值(blob是一个四维的数据:n*c*w*h)。
Ø dim:0 表示维度不变,即输入和输出是相同的维度;
Ø dim:2 或 dim:3 将原来的维度变成2或3;
Ø dim:-1 表示由系统自动计算维度。数据的总量不变,系统会根据blob数据的其它三维来自动计算当前维的维度值;
假设原数据为:64*3*28*28, 表示64张3通道的28*28的彩色图片,经过reshape变换:
输出数据为:64*3*14*56。
5、Dropout
Dropout是一个防止过拟合的trick。可以随机让网络某些隐含层节点的权重不工作。
先看例子:
只需要设置一个dropout_ratio就可以了。还有其它更多的层,但用的地方不多,小菜就不一一介绍了。随着深度学习的深入,各种各样的新模型会不断的出现,因此对应的各种新类型的层也在不断的出现。这些新出现的层,我们只有在等caffe更新到新版本后,再去慢慢地摸索了。
相关文章推荐
- DL学习笔记【10】caffe参数调节-CNN常用参数记录
- caffe学习笔记5:其它常用层及其参数
- Caffe学习(5)——其他常用层及参数
- DL学习笔记【13】caffe参数调节-命令行
- 【深度学习】笔记5_caffe数据层参数的详解
- DL学习笔记【6】caffe参数调节-卷积层(convolution)
- Caffe学习笔记6:激活层(Activiation Layers)和参数
- DL学习笔记【9】caffe参数调节-全连接层
- caffe学习笔记19-batchsize参数
- Caffe学习笔记5:视觉及参数
- caffe基础(4):其他常用层及参数
- 注解学习笔记-handler method 参数绑定常用的注解
- C++ 学习笔记(四) GCC常用参数
- 薛开宇学习笔记二之总结笔记--caffe 中solver.prototxt;train_val.prototxt的一些参数介绍
- Caffe 学习笔记(数据层及参数)
- Caffe学习笔记(七)—— solver参数说明及利用自己的数据集对权值微调
- caffe基础(4):其他常用层及参数
- DL学习笔记【8】caffe参数调节-激活函数层
- Linux学习笔记——Linux常用命令—其他常用命令