Caffe汇总

caffe中mirror(镜像)参数的作用

按照caffe官方说明确实是数据增强的一种方式。 (通过水平方向调换图像)
但是在我理解 数据增强应该是利用现有数据增加训练数据集,就是训练时既有原来未mirror的图像,在加上mirror后的图像。 mirror机制使得数据样本double。

It is random left-right flipping, a common operating when training models. Please ask questions on the mailing list

另外代码也有讲:

if (mirror && rand() % 2) {}   //有随机判断

caffe训练参数设置

一般偏置项的学习率是权值学习率的两倍
weight_filler: 权值初始化。 默认为“constant",值全为0,很多时候我们用"xavier"算法来进行初始化,也可以设置为”gaussian"

# ./build/tools/caffe time -model examples/mnist/lenet_train_test.prototxt -gpu 0

这个例子用来在屏幕上显示lenet模型用gpu迭代50次所使用的时间。默认50

linux下,本身就有一个time命令,因此可以结合进来使用,因此我们运行mnist例子的最终命令是(一块gpu):

$ sudo time ./build/toos/caffe train -solver examples/mnist/lenet_solver.prototxt

caffe 的layer的参数说明

Caffe中deploy.prototxt 和 train_val.prototxt 区别

caffe HDF5Data 层使用及数据生成

在定义.proto文件里的data层时注意,hdf5_data_param的source不要直接写我们生成的HDF5文件的路径,而是写一个.txt文件的,并在.txt文件里写入你生成的HDF5文件的路经,一个HDF5文件路径占一行,一定要这样哦。原因是因为,我们可以要读入多个HDF5文件,所以要这样写哦。

需要注意的是Caffe中HDF的DataLayer不支持transform,所以数据存储前就提前进行了减去均值的步骤。

相关python代码解释

1.定义搜索优先顺序

1.  import sys  
2.  sys.path.insert(1, "./model")  

sys.path.insert(1, "./crnn")定义搜索路径的优先顺序,序号从0开始,表示最大优先级,sys.path.insert()加入的也是临时搜索路径,程序退出后失效。

参考 python sys.path.append()和sys.path.insert()

EuclideanLossLayer

参考caffe 源码分析:Euclidean loss layer

假如label是h*w的分辨率,最后用caffe的EuclideanLossLayer计算的loss值是h*w个loss(label和网络预测逐像素)的总和。

没有除以h*w,只除了batch size。见源码:

template   
void EuclideanLossLayer::Forward_gpu(const vector*>& bottom,  
    const vector*>& top) {  
  int count = bottom[0]->count(); //这里的count就是你的batchsize的大小  
  caffe_gpu_sub(  
      count,                   
      bottom[0]->gpu_data(), //网络的输出值  
      bottom[1]->gpu_data(), //标签值  
      diff_.mutable_gpu_data());//存储bottom[0] - bottom[1]  
  Dtype dot;  
  caffe_gpu_dot(count, diff_.gpu_data(), diff_.gpu_data(), &dot);//做点乘运算  
  Dtype loss = dot / bottom[0]->num() / Dtype(2); //除以总数再除以2  
  top[0]->mutable_cpu_data()[0] = loss; //将loss值赋给输出  
}  

网络文件

以CaffeNet为例:

  1. train_val.prototxt

首先,train_val.prototxt文件是网络配置文件。该文件是在训练的时候用的。

2.deploy.prototxt

该文件是在测试时使用的文件。

例子

Windows系统下利用caffe训练NYU Depth数据集(一)

matlab使用imagesc函数观察图像

你可能感兴趣的:(Caffe汇总)