我的caffe练习(二)--训练自己的数据

1.准备数据

本人推荐一个很适合训练分类的数据集:CelebA_CelebFaces Attributes Dataset

url:http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html

这个数据集标注了人脸的很多属性,如性别、年龄段、微笑、张嘴等等类别(建议先将图片归一成只有人脸部分,这样能提高准确率)。

这里有一份整理好后的性别数据。

https://pan.baidu.com/s/1rzgLv6q1p5FWbtLHYLTgww

2.生成lmdb

lmdb是caffe使用的一种输入数据格式,另外一种是leveldb。

用convert_imageset命令

convert_imageset train\ train\train.txt train_lmdb128 --backend=lmdb --resize_width=128 --resize_height=128

参数解析:

train\ 和 train\train.txt这两个是图片路径的参数。比如在train\train.txt中保存的是下面的格式


pos\018024.jpg 0
pos\018027.jpg 0
pos\018029.jpg 0
pos\018030.jpg 0
pos\018032.jpg 0


那么图片所在路径就是当前路径+train\pos\018024.jpg。

train_lmdb128:是lmdb保存的路径会自动创建文件夹(如果这个文件夹存在,则会报错)

--backend=lmdb是保存的类型,也可以是--backend=leveldb

后面的两个参数是将图片归一化到固定大小再保存成lmdb。

3.生成均值文件(可跳过)

均值能提高训练速度和精度。

compute_image_mean  train_lmdb128 mean128.binaryproto

compute_image_mean带两个参数,第一个参数是lmdb训练数据位置,第二个参数设定均值文件的名字及保存路径。

4.修改solver、train_val配置文件

这里选择常用的Alexnet,关于Alexnet的解读:https://blog.csdn.net/sunbaigui/article/details/39938097

将学习率base_lr改为0.0001,crop_size=128,batch_size=64,最后输出num_output:2.

 

solver.prototxt文件中参数详解:

https://blog.csdn.net/qq_27923041/article/details/55211808 

train_val.prototxt文件中数据层及参数详解:

http://blog.csdn.net/liuweizj12/article/details/52152911

train_val.prototxt文件中视觉层及参数详解:

http://blog.csdn.net/liuweizj12/article/details/52152984

train_val.prototxt文件中激活层及参数详解:

http://blog.csdn.net/liuweizj12/article/details/52153006

 

ps:如何打印log,画出loss和accuracy的曲线:

http://blog.csdn.net/u013078356/article/details/51154847

http://www.zhihu.com/question/36652304

(可以参考XinL/mnist/log里面的文件配置)

5。开始训练

caffe.exe train --solver=solver.prototxt

其中第二个参数是solver.prototxt的路径

训练的时候可以查看loss值。

关于根据打印出来的loss值做出一些调整:https://blog.csdn.net/sunshine_in_moon/article/details/53333335

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值