使用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 相关文章推荐
python检测服务器是否正常
Feb 16 Python
Python中除法使用的注意事项
Aug 21 Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 Python
Python实现连接postgresql数据库的方法分析
Dec 27 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
Python pip配置国内源的方法
Feb 14 Python
Python猜数字算法题详解
Mar 01 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
python基于socket函数实现端口扫描
May 28 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
Jul 31 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
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
jQuery实现简单聊天室
2020/02/08 jQuery
js实现点击烟花特效
2020/10/14 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
Python subprocess模块学习总结
2014/03/13 Python
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
python搭建虚拟环境的步骤详解
2016/09/27 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
Python中存取文件的4种不同操作
2018/07/02 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
建筑工程技术应届生求职信
2013/11/17 职场文书
单位实习证明怎么写
2014/01/17 职场文书
医学生自我评价
2014/01/27 职场文书
贷款委托书怎么写
2014/08/02 职场文书
个人委托书如何写
2014/09/25 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
公务员处分决定书
2015/06/25 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers