Windows caffe 训练自己的图片数据

Posted 逗逗飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows caffe 训练自己的图片数据相关的知识,希望对你有一定的参考价值。

前一次实验将原始的图片数据转化为caffe可以运行的lmdb格式。

本次实验完整分析,如何训练自己的图片数据。

毕竟我们学习caffe要应用到实际的科研/工作中,而不仅仅停留在实验上。

一、实验准备

1、实验数据来自国外的医疗数据, 官网百度网盘下载(部分数据)。当然如果你有自己的数据,可以训练自己的数据。 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,博文难免有不足之处。如有问题,欢迎一起交流!

以上是关于Windows caffe 训练自己的图片数据的主要内容,如果未能解决你的问题,请参考以下文章

使用caffe的cifar10网络模型训练自己的图片数据

windows10 conda2 使用caffe训练训练自己的数据

Caffe for Windows 训练cifar10

跑通caffe-ssd demo代码(训练测试自己数据集)

从零到一:caffe-windows(CPU)配置与利用mnist数据集训练第一个caffemodel

caffe:用自己的数据训练网络mnist