对caffe处理数据过程的浅显理解

来源:互联网 发布:阶乘c语言编程 编辑:程序博客网 时间:2024/06/05 21:02

基于我目前的理解对caffe处理自己的数据的过程进行总结,后续有理解发生变化的地方再进行更改。
1. 假设我现在有一堆标注好的图像数据,拿出来一部分做训练集,一部分做测试集。当然这些图片数据不能直接输入caffe中,需要转换成caffe需要的数据格式
2. 转换成caffe需要的数据格式后,分别计算训练集和测试集的均值文件
3. 假设网络结构已经定义好,则直接更改里面的训练集和测试集的数据来源即可。若没有定义好的网络结构,需要自己定义,一般需要一个*solver.prototxt文件和一个*train_test.prototxt文件
4. 然后对训练集进行训练,训练时的.bat文件一般如下形式:
Build\x64\Debug\caffe.exe train –solver=//*solver.prototx
pause
训练完成后会生成 .caffemodel 文件和 .solverstate 文件
5. 利用测试集对训练好的模型进行测试,测试时的.bat文件一般如下形式:
Build\x64\Debug\caffe.exe test –model==examples/mnist/lenet_train_test.prototxt –weights= examples/mnist/lenet_iter_1000.caffemodel
pause
6. 对模型训练好并且测试完后,就要拿来这个模型用啦。用它对未知分类的图像数据进行分类,分类时.bat文件一般如下形式:
Build\x64\Debug\classification.exe
examples/mnist/lenet.prototxt
examples/mnist/ lenet_iter_1000.caffemodel
mean.binaryproto
examples/mnist/label.txt
examples/mnist/test1.bmp