分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

YOLO(Darknet官方)训练分类器

发布时间:2023-09-06 02:32责任编辑:沈小雨关键词:暂无标签

目录

  • 1. 分类数据准备
  • 2. Darknet配置
  • 3. Darknet命令使用
  • 4. cifar-10 使用示例

1. 分类数据准备

需要的文件列表:

1. train.list : 训练的图片的绝对路径2. test.list : 用于测试的图片的绝对路径3. labels.txt : 所有的类别,一行一个类4. voc.data : darknet配置文件,记录相关位置信息5. cifar.cfg : 网络配置文件

按照以下目录结构进行构造:

VOCdevkit ???VOC2017 ???????JPEGImages ???????????train ???????????test

其中训练和测试的比例设置:

  1. 如果数据集比较小(10,000左右),那么设置的比例为:训练:测试 = 80% : 20%
  2. 如果数据集比较大(100,000左右),那么设置的比例为:训练:测试 = 99% :1%

然后转到JPEGImages目录下进行以下操作:

find `pwd`/train -name \*.jpg > train.listfind `pwd`/test -name \*.jpg > test.list

构造labels.txt文件内容

airplaneautomobilebirdcatdeerdogfroghorseshiptruck

构造voc.data文件中内容:

classes=10 #设置的类别个数train ?= data/cifar/train.list #上边构造的训练列表valid ?= data/cifar/test.list # 上边构造的测试列表labels = data/cifar/labels.txt # 记录类别backup = backup/ #训练的网络文件的位置top=2 # 计算top-n的准确率

网络配置文件的选择:

网络配置文件以及预训练模型

以AlexNet为例:

[net]# Training# batch=128# subdivisions=1# Testingbatch=1subdivisions=1height=227width=227channels=3momentum=0.9decay=0.0005max_crop=256learning_rate=0.01policy=polypower=4max_batches=800000angle=7hue = .1saturation=.75exposure=.75aspect=.75[convolutional]filters=96size=11stride=4pad=0activation=relu[maxpool]size=3stride=2padding=0[convolutional]filters=256size=5stride=1pad=1activation=relu[maxpool]size=3stride=2padding=0[convolutional]filters=384size=3stride=1pad=1activation=relu[convolutional]filters=384size=3stride=1pad=1activation=relu[convolutional]filters=256size=3stride=1pad=1activation=relu[maxpool]size=3stride=2padding=0[connected]output=4096activation=relu[dropout]probability=.5[connected]output=4096activation=relu[dropout]probability=.5[connected]output=1000activation=linear[softmax]groups=1

2. Darknet配置

  1. 下载darknet
git clone https://github.com/pjreddie/darknet.gitcd darknetmake -j4

如果有GPU并且安装了cuda8.0和cudnn6.0,请在Makefile中进行修改,将对应的CUDA=0改为CUDA=1.

  1. 将在第一步构造的文件放到对应位置
darknet ???cfg -- AlexNet.cfg ???data -- voc.data, labels.txt, train.list, test.list

其中voc.data中的内容直接指到对应的文件上。

3. Darknet命令使用

  1. train命令

    ./darknet classifier train data/voc.data cfg/AlexNet.cfg

  2. valid命令

    ./darknet classifier valid data/voc.data cfg/AlexNet.cfg backup AlexNet.backup

  3. predict命令

    ./darknet classifier predict data/voc.data cfg/AlexNet.cfg backup AlexNet.backup ./cat.png

  4. 终端训练后重新训练

    ./darknet classifier train data/voc.data cfg/AlexNet.cfg backup/AlexNet.backup

  5. 设置训练使用的GPU

    -gpus 0,1

4. cifar-10 使用示例

  1. 数据获取

    cd datawget https://pjreddie.com/media/files/cifar.tgztar xzf cifar.tgzcd cifarfind `pwd`/train -name \*.png > train.listfind `pwd`/test -name \*.png > test.listcd ../..
  2. 选择config文件

    classes=10train ?= data/cifar/train.listvalid ?= data/cifar/test.listlabels = data/cifar/labels.txtbackup = backup/top=2
  3. 创建网络配置文件

    cifar_small.cfg(官方提供)

    [net]batch=128subdivisions=1height=28width=28channels=3max_crop=32min_crop=32hue=.1saturation=.75exposure=.75learning_rate=0.1policy=polypower=4max_batches = 5000momentum=0.9decay=0.0005[convolutional]batch_normalize=1filters=32size=3stride=1pad=1activation=leaky[maxpool]size=2stride=2[convolutional]batch_normalize=1filters=16size=1stride=1pad=1activation=leaky[convolutional]batch_normalize=1filters=64size=3stride=1pad=1activation=leaky[maxpool]size=2stride=2[convolutional]batch_normalize=1filters=32size=1stride=1pad=1activation=leaky[convolutional]batch_normalize=1filters=128size=3stride=1pad=1activation=leaky[convolutional]batch_normalize=1filters=64size=1stride=1pad=1activation=leaky[convolutional]filters=10size=1stride=1pad=1activation=leaky[avgpool][softmax]
  4. 训练

    训练:./darknet classifier train cfg/cifar.data cfg/cifar_small.cfg

    valid: ./darknet classifier valid cfg/cifar.data cfg/cifar_small.cfg backup/cifar_small.backup

YOLO(Darknet官方)训练分类器

原文地址:https://www.cnblogs.com/pprp/p/10342335.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved