Cafffe入门-win7上训练自己的数据和微调
来源:互联网 发布:做微商可以淘宝进货吗 编辑:程序博客网 时间:2024/05/17 01:52
1.准备数据
使用dog/cat数据集,在训练项目根目录下分别建立train和val文件夹,作为训练数据和验证数据的保存位置。train和val文件夹下各有两个文件夹:dogs和cats,分别保存dog和cat的图片。dog和cat分别有1000张训练图像和400张测试图像。
写一个python脚本文件,遍历train和val两个文件夹,分别生成train.txt和val.txt,其中保存图片的相对路径和标签。类似下面格式,但是最好要将cat和dog的路径顺序打乱,不要一开始全cat,之后全是dog。
/cats/cat.0.jpg 0/cats/cat.1.jpg 0/cats/cat.10.jpg 0/cats/cat.100.jpg 0/cats/cat.101.jpg 0/cats/cat.102.jpg 0/cats/cat.103.jpg 0/cats/cat.104.jpg 0
2.数据预处理
2.1转换数据格式
使用convert_imageset.exe将原始图像转换成caffe直接读取的格式:lmdb或leveldb。默认是lmdb,如果要生成leveldb,要添加–backend=leveldb参数。建立convert_image.bat文件,里面命令如下。
SET GLOG_logtostderr=1E:\Code\Caffe\caffe-master\caffe-master\Build\x64\Release\convert_imageset.exe --resize_width=256 --resize_height=256 E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\train E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\train.txt E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\trainldbE:\Code\Caffe\caffe-master\caffe-master\Build\x64\Release\convert_imageset.exe --resize_width=256 --resize_height=256 E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\val\ E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\val.txt E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\valldbpause
参数说明:
1. E:\Code\Caffe\caffe-master\caffe-master\Build\x64\Release\convert_imageset.exe是执行程序路径。
2. –resize_width=256 –resize_height=256重新指定生成图像大小。
3. E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\train是训练图像存储位置。
4. E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\train.txt训练图像的索引文件。
5. E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\trainldb生成的lmdb格式文件路径。
测试图像同上。
注意:3的路径和4中train.txt里指定路径连接在一块是图像的绝对路径,否则找不到图片)
执行convert_image.bat文件,即可生成lmdb文件,分别保存在指定路径中。
2.3计算图像均值
建立compute_mean.bat并执行,内容如下
E:\Code\Caffe\caffe-master\caffe-master\Build\x64\Release\compute_image_mean.exe E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\trainldb E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\train_mean.binaryproto
参数说明
1. E:\Code\Caffe\caffe-master\caffe-master\Build\x64\Release\compute_image_mean.exe是计算均值的执行文件。
2. E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\trainldb上一步生成的了 lmdb文件路径。
3. E:\Code\Caffe\caffe-master\caffe-master\data\dogCat\train_mean.binaryproto生成的均值文件,后缀是.binaryproto。
3.修改配置文件
在项目根目录新建train_val文件夹,将.\caffe-master\models\bvlc_reference_caffenet中的配置文件复制到train_val中。包括train_val.prototxt和solver.prototxt。
train_val.prototxt中修改mean_file路径(训练和测试时用同样的mean file)和data_source的路径,设置相应的batch_size。将最后一层fc8的num_output设置为相应的输出类别数目,也就是2。
solver.prototxt中设置如下。
net: "E:/Code/Caffe/caffe-master/caffe-master/data/dogCat/train_val/train_val.prototxt"test_iter: 16test_interval: 50base_lr: 0.01lr_policy: "step"gamma: 0.1stepsize: 2000display: 20max_iter: 10000momentum: 0.9weight_decay: 0.0005snapshot: 500snapshot_prefix: "E:/Code/Caffe/caffe-master/caffe-master/data/dogCat/caffenet_finetune"solver_mode: CPU
net参数为刚才设置好的train_val.prototxt。
test_iter为测试时使用的batch个数,test_iter*testbatch_size=test images number。
test_interval: 测试的迭代间隔次数。
max_iter:迭代次数。
…
4.开始训练
建立caffe.bat训练模型。并保存log文件。
5.可视化训练过程
使用log文件可视化accuracy和loss等参数。
6.微调
1-5完成了从头训练一个模型,我们也可以从头训练一个模型。但是这样花费时间很多,而且如果训练数据不够多,训练精度也不高。基于迁移学习的思想,可以用自己的数据finetune用imagenet预训练过的模型,这样减少训练时间,效果也更好。实际上就是参数初始化方法不同。
下载预训练模型。
相应修改train_val.prototxt和solver.prototxt。train_val.prototxt中配置好数据文件路径,将最后一层的名称改掉,设置相应num_output,增大weights和bias的lr_mult(从头训练,要加快速度)。
solver.prototxt中减少初始学习率。
开始训练。
- Cafffe入门-win7上训练自己的数据和微调
- windows 训练、微调caffenet 训练测试自己的数据
- 如何将别人训练好的model用到自己的数据上----微调模型
- 训练自己的数据,微调faster Rcnn模型
- 在Caffe上利用自己的数据集进行微调
- 在自己的数据集上微调Light CNN
- win7 faster_rcnn 训练自己的数据 matlab
- caffe 框架下微调已有模型训练自己的数据实现图像分类
- 利用自己的数据微调caffenet
- Caffe上训练使用自己的数据
- Caffe上训练使用自己的数据
- caffe入门3:利用imagenet在caffe上训练自己的数据集
- Caffe 跑自己的数据和训练
- Windows Caffe 学习笔记(三)在Caffe上训练和测试自己的数据
- 训练自己的数据
- 训练自己的数据
- windows-caffe入门之用CPU训练自己的数据
- caffe上训练自己的数据(一)
- Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException
- 8个hybrid app开发工具
- Mac Safari 打不开网页,因为无法连接到服务器
- WebViewClient与WebChromeClient的区别
- kafka数据可靠性深度解读
- Cafffe入门-win7上训练自己的数据和微调
- [php] Thinkphp删除图片和数据库记录
- 昆石VOS3000_2.1.2.0完整安装包及安装脚本
- ios --个推
- 【Android原创】自定义SurfaceViews实现地图移动
- qt学习笔记(八)之深入QSqlQuery
- HDU1695:GCD(莫比乌斯函数)
- Unity 脚本执行顺序
- python 字典访问的三种方法