Caffe上训练使用自己的数据

Caffe上训练使用自己的数据

from: http://www.wjxfpf.com/2015/10/824918.html

接着上篇,上篇讲解了怎么在ubuntu下安装Caffe,如果一切没问题的话应该是可以用了,下面自己测试一下。

测试mnist

首先切换到caffe-master的主目录,mnist是作为一个演示存在于caffe-master/examples/mnist下的,需要三步来运行: 
<1>获得mnist手写数据库数据

$ sh data/mnist/get_mnist.sh

<2>根据获得的原始数据建立数据集(Lmdb形式)

$ sh examples/mnist/create_mnist.sh

<3>训练并获得验证集合的成功率

$ sh examples/mnist/train_lenet.sh

这些脚本Caffe都是写好了的,直接运行就可以了,如果没错的话,你应该看到类似于下面的输出 
Caffe上训练使用自己的数据

输出的内容就是创建相应的网络和进行迭代训练,这里我只截图了刚开始训练的部分,它会产生相应的model,以后我们就可以拿这些model去进行识别了

Caffe上训练使用自己的数据集

我就以这个来演示下如何使用caffe来使用自己的数据进行训练和识别(分类);这是自己做的中文汉字识别的一个实验,大概有3K多个汉字,我将每个汉字归为一个类,所以总共有3K多个类,然后就可以在上面训练识别。由于汉字什么的长得和手写数字还是很像的(明显不同与猫、狗之类的),所以我就偷懒用了mnist的网络结构来训练,最后效果也还不错。ps:数据多点结果应该更好点 
(1)对自己的数据进行分类 
在我这个来说,就是把每个汉字归为一类,首先新建个train文件夹用来做训练,类的编号从0开始,1,2,3,4,5…….这样写,大概是这样的: 
Caffe上训练使用自己的数据

再建个val文件夹,用来做验证,val文件夹下所有的图片不用分类,直接放一起就可以了,大概是这样: 
Caffe上训练使用自己的数据

(2)写训练的数据集和验证的数据集TXT 
train.txt就是将train文件夹下的图片归类,val.txt直接写图片的类编号,大概是这样: 
Caffe上训练使用自己的数据

Caffe上训练使用自己的数据

(3)做数据集 
从imagenet拷贝create_imagenet.sh,进行修改,主要写上自己的train和val的路径 
Caffe上训练使用自己的数据

修改完之后就可以运行了,会创建两个数据集: 
Caffe上训练使用自己的数据

(4)定义网络结构 
上面说了,对于汉字我就采用了mnist的网络结构,直接拷贝(3)中获得的两个数据集到examples/mnist下,最后就是这样的: 
Caffe上训练使用自己的数据

红色圈出的是不需要的,当然如果你需要加均值的话,可以使用make_imagenet_mean.sh,改下路径就可以用了,但不是必须的 
主要是修改lenet_train_test.prototxt文件的内容: 
Caffe上训练使用自己的数据

修改下路径就可以了,红色标明的地方 
还有就是连接的个数,写上自己实际的类的个数,很重要不然会报错 
Caffe上训练使用自己的数据

(5)训练 
直接运行lenet_train.sh就可以了,它调用lenet_train_test.prototxt的网络结构,学习率,decay之类的参数在lenet_solvet.prototxt里面,大家看着需要自己设置,会产生model文件和验证结果,类似于上面用mnist自带的数据集训练的结果 
Caffe上训练使用自己的数据

最后结果截图我就不放了,跟第一张差不多,说的就是迭代到多少次,成功率(accuracy)是多少,损失(loss)是多少

总结一下做自己的训练集的步骤: 
<1>分类;将自己的训练数据分成类并写train.txt文件,val直接全放一起,写val.txt文档 
<2>做数据集文件(lmdb) 
<3>定义网络结构 
<4>训练并验证

上面说的不太清楚的地方,欢迎咨询!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值