前一次实验将原始的图片数据转化为caffe可以运行的lmdb格式。
本次实验完整分析,如何训练自己的图片数据。
毕竟我们学习caffe要应用到实际的科研/工作中,而不仅仅停留在实验上。
一、实验准备
2、
Git bash可以让你直接在windows下运行shell脚本。下载地址
二、创建文件清单
该步骤就是将要训练的数据写入train.txt,将要测试的数据写入test.txt。
参考别人的一种写法:
自己进行了部分修改,用于该实验。
首先创建一个txt文本,重命名为create_filelist.sh,内容如下:
# /usr/bin/env sh
DATA=D:/Caffe/Caffe_BVLC/data/re/
echo "Create train.txt..."
rm -rf $DATA/log.txt
rm -rf $DATA/train/train.txt
rm -rf $DATA/test/test.txt
for i in 3 4 5 6 7
do
find $DATA/train -name $i*.jpg | cut -d '/' -f8-8 | sed "s/$/ $i/">>$DATA/train/train.txt
done
for i in 3 4 5 6 7
do
find $DATA/test -name $i*.jpg | cut -d '/' -f8-8 | sed "s/$/ $i/">>$DATA/test/test.txt
done
>>log.txt
echo "Done.."
-f8-8为我们要保存的文件的层次:第八层文件,即文件名:
>>log.txt 将执行期间遇到的错误写入log.txt
这里一定要注意,别为了改变格式使用\r\n回车换行,否则数据无法识别!!!
执行该脚本,结果如下:
三、格式转换
有了文件清单,利用caffe提供的convert_imageset.exe,就可以将图片数据转化为lmdb或者leveldb格式
具体做法:创建一个文本文件,重命名
create_lmdb.sh
插入内容
DATA=D:/Caffe/Caffe_BVLC/data/livertumor01
rm -rf $DATA/img_train_lmdb
D:/Caffe/Caffe_BVLC/Build/x64/Release/convert_imageset.exe --shuffle \
--resize_height=256 --resize_width=256 \
$DATA $DATA/train.txt $DATA/img_train_lmdb
执行该脚本,会出现img_train_lmdb文件夹,在该文件夹下内容如下图所示:
四、训练数据
具体做法
第一、二次试验已经做过。
本次实验所用到的train.prototxt文件,是第二次实验时候的.prototxt文件
创建run_livertumor.bat,内容如下
D:\Caffe\Caffe_BVLC\Build\x64\Release\caffe.exe train --solver=D:\Caffe\Caffe_BVLC\data\livertumor01\train.prototxt
pause
执行该脚本
可以发现,最后的精度只有0.6818。 我们所使用的.prototxt文件不适合该数据,需要调整。
五、总结
总体来说,本实验实现了原始图片数据的训练。但对caffe的层次结构不太了解,不知道如何调整具体层次的具体参数,后续实验将具体分析caffe的层次结构。
刚接触caffe,博文难免有不足之处。如有问题,欢迎一起交流!