http://www.cnblogs.com/denny402/tag/caffe/
Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件
caffe神经网络框架的辅助工具(将图片转换为leveldb格式)
Caffe1——Mnist数据集创建lmdb或leveldb类型的数据
Caffe2——cifar10数据集创建lmdb或leveldb类型的数据
Caffe3——ImageNet数据集创建lmdb类型的数据
Caffe训练过程:test_iter test_interval等概念
Windows下用VS2013加载caffemodel做图像分类
如何快糙好猛地在Windows下编译CAFFE并使用其matlab和python接口
Fine-tuning CaffeNet for Style Recognition on “Flickr Style” Data
假如有两个model,如何把其中一个model的某一层的权重赋给另一个model的对应层。
怎样用自己的数据集对caffe训练好的model进行fineture?
global average pooling 与average pooling的区别是什么?
目前state of art 的人脸检测算法都是cnn based,如何应用于手机等嵌入式设备中?
caffe在训练过程中可以不使用validation吗?不使用有什么坏处(或者说使用validation有什么好处)?
http://blog.csdn.net/u012235274/article/category/6197462
caffe源码
caffe数据格式(Google Protocol Buffers)
http://blog.csdn.net/seven_first/article/category/5721883
http://blog.csdn.net/seven_first/article/category/5721883
添加caffe python layer
在python中caffe示例实现之11逻辑回归及其深化
caffe 练习4 ----利用python批量抽取caffe计算得到的特征------by 香蕉麦乐迪
caffe 练习3 用caffe提供的C++函数批量抽取图像特征------by 香蕉麦乐迪
训练可视化
可视化
在 caffe 中添加 FaceNet 中 Triplet Loss Layer
caffe 里面GPU 选择设置, 通过配置文件 读取GPU 的编号。
*_train_test.prototxt,*_deploy.prototxt,*_slover.prototxt文件编写时注意事项
关于propagate_down
比如有4个全连接层A->B->C->D
a. 你希望C层的参数不会改变,C前面的AB层的参数也不会改变,这种情况也就是D层的梯度不往前反向传播到D层的输入blob(也就是C层的输出blob 没有得到梯度),你可以通过设置D层的propagate_down为false来做到。
propagate_down的数量与输入blob的数量相同,假如你某个层有2个输入blob,那么你应该在该layer的Param里面写上两行:
propagate_down : 0 # 第1个输入blob不会得到反向传播的梯度
propagate_down : 0 # 第2个输入blob不会得到反向传播的梯度
这样的话,你这个layer的梯度就不会反向传播啦,前面的所有layer的参数也就不会改变了
b. 你希望C层的参数不会改变,但是C前面的AB层的参数会改变,这种情况,只是固定了C层的参数,C层得到的梯度依然会反向传播给前面的B层。只需要将对应的参数blob的学习率调整为0:
你在layer里面加上param { lr_mult: 0 }就可以了,比如全连接层里面:
layer {
type: "InnerProduct"
param { # 对应第1个参数blob的配置,也就是全连接层的参数矩阵的配置
lr_mult: 0 # 学习率为0,其他参数可以看caffe.proto里面的ParamSpec这个类型
}
param { # 对应第2个参数blob的配置,也就是全连接层的偏置项的配置
lr_mult: 0 # 学习率为0
}
}
caffe关闭日志输出消息
可能对于算法实验阶段来说,我们需要caffe运行网络的时候,打印网络的相关参数消息。然而对于已经走向工程之路的caffe模型来说,我们有可能需要屏蔽那些没用的输出消息,因此这个时候就需要用到caffe的消息屏蔽。
1、在程序最开始运行地方,加入如下代码:
2、在程序结束的时候加入代码: