参考博客:caffe windows训练测试自己的图片 https://www.jianshu.com/p/607f1e51e3ab
Caffe学习系列(12):训练和测试自己的图片 https://www.cnblogs.com/denny402/p/5083300.html
1、生成lmdb格式的数据
(1)原始.jpg图像,可自行搜索下载(或者我上传了图片https://download.youkuaiyun.com/download/xiaoyucyt/12284404可以下载),在caffe-master/data路径下新建文件夹my,将test和train两个图片文件夹放在my文件夹下(这里caffe-master为caffe的根目录)。
(2)转换为lmdb格式:在my目录下新建文件列表清单trainlist.txt和testlist.txt,内容即图片名和对应的标签号:
(3)在根目录caffe-master下新建批处理文件convert_image.bat,分别转换训练图片和测试图片:
.\Build\x64\Release\convert_imageset.exe --resize_height=256 --resize_width=256 --backend=lmdb .\data\my\ .\data\my\trainlist.txt .\data\my\img_train_lmdb
pause
.\Build\x64\Release\convert_imageset.exe --resize_height=256 --resize_width=256 --backend=lmdb .\data\my\ .\data\my\testlist.txt .\data\my\img_test_lmdb
pause
(4)双击运行该批处理文件,在my文件夹下会生成对应的db文件:
2、计算图片均值
图片减去均值再训练,会提高训练速度和精度,一般都会有这个操作。计算图片均值使用的是前一步生成的训练数据的lmdb。
在根目录caffe-master下新建批处理文件convert_mean.bat:
会在当前目录下生成mean.binaryproto文件,拷贝到my文件夹下。
3、修改网络模型和配置文件:
这里拷贝了models\bvlc_reference_caffenet\solver.prototxt文件和train_val.prototxt文件到my文件夹下,并修改(test_iter、test_batchsize和数据来源路径,因为图像数据量发生了改变。并在fc8这个layer处也要修改下,将1000改为5,因为我们这里只有5个类别):
4、训练和测试
在caffe-master路径下新建Train.bat:
双击运行,出现问题:
这个该如何解决?
重新试了一次:
另外的错误:
Check failed: error==cudaSuccess(2 vs. 0) out of memory
解法方法:将train_val.prototxt文件里train的batch_size由256改为和test一样的50就可以训练了。(batch_size太大了,一次性读入的图片太多了,所以就超出了显存。)