YOLO如何训练分类网络???

一般YOLO的工程应用直接上检测,源自作者提供了分类的预训练模型,但是如果自己改网络训练怎么办?预训练网络没有怎么办?

不怕,两种方法可以解决!

第一种:比较笨的方法,就是下载imagenet数据训练分类网络!

第二种:一层一层的改网路,每改一层,在原有预训练的条件下训练网络,生成新的模型时作为下一次修改网络的预训练模型!说的好像不是很清楚额,这个问题以后讨论!

 

今天讨论如何用yolo训练自己的分类模型!可见我们一般的分类工程都是通过caffe来做的,YOLO其实可以替代的,而且yolo是纯c,有着不可替代的优点!加上OpenBlas,效果不要太好了!

 

第一步:yolo配置

这个在本博文不提了,可参考我的系列博客http://blog.youkuaiyun.com/samylee/article/details/53414108

 

第二步:数据制作

没啥特殊要求,如下图所示,train保存训练图片,test保存测试图片,labels.txt为分类的标签,例如猫狗大战则为cat和dog!

注意一点就行,即图片名称为labels.txt中的一种,例如cat_1.jpg,cat为labels中的一种,后面_1随便写,只要没有dog就行!(WHY?全局搜索strstr函数即可豁然开朗)

同时要分别生成train.list和test.list保存图片train和test的绝对路径,这个程序可以自己写一下啦,很简单!

 

第三步:数据配置文件制作

例如猫狗大战数据,cat_dog.data怎么写?如下:

 

classes=2
train  = data/cat_dog/train.list
valid  = data/cat_dog/test.list
labels = data/cat_dog/labels.txt
backup = cat_dog/backup/
top=2

很明显,classes表示几类,labels表示标签路径,backup表示要把模型存放在哪里,top表示准确率输出前几,类似caffe

 

 

第四步:网络文件制作

cat_dog.cfg怎么写?如下:

 

[net]
batch=128
subdivisions=1
height=416
width=416
channels=3
max_crop=428
min_crop=428

hue=.1
saturation=.75
exposure=.75

learning_rate=0.1
policy=poly
power=4
max_batches = 5000
momentum=0.9
decay=0.0005

[convolutional]
batch_normalize=1
filters=32
size=3
stride=1
pad=1
activation=leaky

[maxpool]
size=2
stride=2

[convolutional]
batch_normalize=1
filters=64
size=3
stride=1
pad=1
activation=leaky

[maxpool]
size=2
stride=2

[convolutional]
batch_normalize=1
filters=128
size=3
stride=1
pad=1
activation=leaky

[convolutional]
filters=2
size=1
stride=1
pad=1
activation=leaky

[avgpool]

[softmax]
groups=1

[cost]
type=sse

很明显,max_crop表示原始图像大小,heights和weights表示剪切图像大小,最后一层conv输出为几类,这里比如猫狗为2

 

 

第五步:训练

到了这一步,很舒服!终端写入如下命令即可:

 

./darknet classifier train cfg/cat_dog.data cfg/cat_dog.cfg

训练过程看啥呢?看loss,loss应该越来越小,最后趋于平稳

 

 

第六步:测试

训练完毕过后,拿出训练结果的模型来测试,真皮!终端输入如下命令即可:

 

./darknet classifier predict cfg/cat_dog.data cfg/cat_dog.cfg cat_dog_final.weights data/dog.jpg

结束啦,终端可以看到输出两个结果(top=2),第一个即为判断的结果啦

 

 

任何问题请加唯一QQ2258205918(名称samylee)  !!! 

唯一VX:samylee_csdn

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值