使用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编写的微博应用
Oct 17 Python
python通过yield实现数组全排列的方法
Mar 18 Python
Python中基本的日期时间处理的学习教程
Oct 16 Python
深入浅析python继承问题
May 29 Python
Python中字典的setdefault()方法教程
Feb 07 Python
Python中最大最小赋值小技巧(分享)
Dec 23 Python
python如何把嵌套列表转变成普通列表
Mar 20 Python
Python3.7 pyodbc完美配置访问access数据库
Oct 03 Python
python+tifffile之tiff文件读写方式
Jan 13 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
Python xpath表达式如何实现数据处理
Jun 13 Python
python 解决函数返回return的问题
Dec 05 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无敌近乎加密方式!
2010/07/17 PHP
PHP无限分类(树形类)
2013/09/28 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
Dom 是什么的详细说明
2010/10/25 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
javascript实现下雪效果【实例代码】
2016/05/03 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
详细分析jsonp的原理和实现方式
2017/11/20 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
简单讲解Python中的闭包
2015/08/11 Python
Python探索之Metaclass初步了解
2017/10/28 Python
django session完成状态保持的方法
2018/11/27 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
Django后台admin的使用详解
2019/07/08 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
什么是URL
2015/12/13 面试题
企业管理毕业生求职信范文
2014/03/07 职场文书
责任担保书范文
2014/05/21 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书
银行求职信范文
2019/05/13 职场文书