使用darknet框架的imagenet数据分类预训练操作


Posted in Python onJuly 07, 2020

最近一段时间一直在研究yolo物体检测,基于网络上很少有yolo的分类预训练和yolo9000的联合数据的训练方法,经过本人的真实实验,对这两个部分做一个整理(本篇介绍yolo的分类预训练)

1、数据准备

1000类的Imagenet图片数据

因为Imagenet不同的类别数据都是单独放在一个文件夹中,并且有特定的命名,如‘n00020287',所以在做分类时我们不需要去制作特定的标签,只要训练的图片的path中包含自身的类别标签,而不含有其他类的标签即可。

制作用于训练的数据列表*classf_list.txt

使用darknet框架的imagenet数据分类预训练操作

2、分类标签制作

制作所有类别的标签列表new_label.txt和标签对应的类别名称的列表new_name.txt

new_label.txt

使用darknet框架的imagenet数据分类预训练操作

new_name.txt(训练时不需要,但是测试时可以显示出具体的类别)

使用darknet框架的imagenet数据分类预训练操作

3、修改cfg/.data配置文件(*classf.data)

classes=1000
train =/home/research/disk2/wangshun/yolo1700/darknet/coco/filelist/classf_list.txt
labels=data/new_label.txt
names=data/new_name.txt
backup=backup
top=5

修改网络配置文件(classf.cfg)

[net]
#Training
batch=64
subdivisions=1
width=416
height=416
channels=3
momentum=0.9
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1
max_crop = 512
learning_rate=0.001
burn_in=1000
max_batches = 1000000000
policy=steps
steps=350000,500000,750000,1200000
scales=.1,.1,.1,.1
[convolutional]
batch_normalize=1
filters=16
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=2
[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
[convolutional]
batch_normalize=1
filters=32
size=1
stride=1
pad=1
activation=leaky
[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]
batch_normalize=1
filters=64
size=1
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=128
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
[convolutional]
batch_normalize=1
filters=128
size=1
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=128
size=1
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=2
[convolutional]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=128
size=1
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=128
size=1
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky
#######
[convolutional]
batch_normalize=1
size=1
stride=1
pad=1
filters=128
activation=leaky
[convolutional]
batch_normalize=1
size=3
stride=1
pad=1
filters=256
activation=leaky
[convolutional]
batch_normalize=1
size=3
stride=1
pad=1
filters=256
activation=leaky
[convolutional]
filters=1000
size=1
stride=1
pad=1
activation=leaky
[avgpool]
[softmax]
groups = 1
[cost]
type=sse

当然中间的网络层是我自己修改的网络。

5. 训练

./darknet classifier train cfg/classf.data cfg/classf.cfg -gpus 0,3(选择自己机器的gpu)

使用darknet框架的imagenet数据分类预训练操作

6 . 测试

./darknet classifier predict cfg/classf.data cfg/classf.cfg backup/classf.weights data/eagle.jpg

使用darknet框架的imagenet数据分类预训练操作

当然这只是刚刚训练了2000次测试的结果,只是测试,还需要继续训练。

以上这篇使用darknet框架的imagenet数据分类预训练操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django中处理出错页面的方法
Jul 15 Python
python常见排序算法基础教程
Apr 13 Python
Python 实现选择排序的算法步骤
Apr 22 Python
Python 脚本获取ES 存储容量的实例
Dec 27 Python
python整合ffmpeg实现视频文件的批量转换
May 31 Python
详解Python 中sys.stdin.readline()的用法
Sep 12 Python
python实现翻译word表格小程序
Feb 27 Python
Docker如何部署Python项目的实现详解
Oct 26 Python
python 下载文件的多种方法汇总
Nov 17 Python
pytorch __init__、forward与__call__的用法小结
Feb 27 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 Python
Python调用C语言程序方法解析
Jul 07 #Python
keras实现VGG16方式(预测一张图片)
Jul 07 #Python
通过实例解析Python RPC实现原理及方法
Jul 07 #Python
Keras预训练的ImageNet模型实现分类操作
Jul 07 #Python
Scrapy模拟登录赶集网的实现代码
Jul 07 #Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
Jul 07 #Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
Jul 07 #Python
You might like
跟我学Laravel之安装Laravel
2014/10/15 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
php表单提交实例讲解
2015/11/12 PHP
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
Javascript 遍历页面text控件详解
2014/01/06 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
python简单猜数游戏实例
2015/07/09 Python
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
澳大利亚相机之家:Camera House
2017/11/30 全球购物
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
韩语专业本科生求职信
2013/10/01 职场文书
校园文化建设方案
2014/02/03 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
活动总结怎么写啊
2014/05/07 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
军训后的感想
2015/08/07 职场文书
诚实守信主题班会
2015/08/13 职场文书
高中团支书竞选稿
2015/11/21 职场文书
python库sklearn常用操作
2021/08/23 Python
Vue的生命周期一起来看看
2022/02/24 Vue.js