本站的内容是训练自己的网络结构来分类鸟和狗。
1.准备自己的数据集。
1.1 在caffe的data文件夹下面建立一个myself文件夹。在myself文件夹下面建立train和test文件夹。
1.2 百度下载10张鸟的图片和10张狗的图片最为训练集。再下载4张鸟的图片和4张狗的图片最为验证集。(只是为了给大家演示一下就没有弄太多的数据集)。对训练集图片进行顺序编号dog1.jpeg,dog2.jpeg .... dog10.jpeg。bird1.jpeg bird2.jpeg ... bird10.jpeg。对验证集的图片进行编号 dog1.jpeg,dog2.jpeg .... dog4.jpeg。bird1.jpeg bird2.jpeg ... bird4.jpeg。 将训练集图片复制到train文件夹下面。验证集图片复制到test文件夹下面。
1.3 在myself文件夹下面新建train.txt 和 test.txt文本文档。0表示bird类别 1表示dog类别。
2.制作数据集和均值文件:
2.1 在caffe的examples文件夹下面建立一个 myself 文件。找到caffe -> examples -> imagenet文件夹,将里面的create_imagenet.sh 、make_imagenet_mean.sh 、train_caffenet.sh 这三个文件复制到 examples文件夹下面的myself文件夹里面。
2.2 修改create_imagenet.sh 将里面的路径设置文自己的路径。下面是我修改的路径。(只修改了红色圈住的地方,将前面的路径修改成自己的绝对路径,然后RESIZE=TRUE,是为了将图片都resize成统一大小的图片。)设置好之后运行sh文件就可以在examples->myself文件夹下面得到生成的两个lmdb文件夹。
2.3生成均值文件:修改make_imagenet_mean.sh 只是修改路径 把有的路径修改成自己的绝对路径。修改完之后运行sh文件,就可以在myself文件夹下面得到一个 imagenet_mean.binaryproto 文件。
3.训练自己的网络:(为了方便起见我直接拿caffenet的网络结构来训练,你可以把你的网络结构复制进来替换掉caffenet网络)找到 caffe-> models -> bvlc_reference_caffenet 将里面的solver.prototxt 和 train_val.prototxt两个文件复制到 examples->mtself 文件夹下面。 修改train_val.prototxt文件(红框修改成自己的文件夹路径,绿框为batch_size大小由于数据集太少建议设置成1.)
修改solver.prototxt文件:(换成自己的路径)
修改train_caffenet.sh文件(修改成自己的路径):
修改完之后直接 bash train_caffenet.sh 就可以训练网络了。
ps:你可以修改train_val.prototxt将里面的网络结构修改成你自己的网络来训练。
训练结果: