目录
- 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
其中训练和测试的比例设置:
- 如果数据集比较小(10,000左右),那么设置的比例为:训练:测试 = 80% : 20%
- 如果数据集比较大(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配置
- 下载darknet
git clone https://github.com/pjreddie/darknet.gitcd darknetmake -j4
如果有GPU并且安装了cuda8.0和cudnn6.0,请在Makefile中进行修改,将对应的CUDA=0改为CUDA=1.
- 将在第一步构造的文件放到对应位置
darknet ???cfg -- AlexNet.cfg ???data -- voc.data, labels.txt, train.list, test.list
其中voc.data中的内容直接指到对应的文件上。
3. Darknet命令使用
train命令
./darknet classifier train data/voc.data cfg/AlexNet.cfg
valid命令
./darknet classifier valid data/voc.data cfg/AlexNet.cfg backup AlexNet.backup
predict命令
./darknet classifier predict data/voc.data cfg/AlexNet.cfg backup AlexNet.backup ./cat.png
终端训练后重新训练
./darknet classifier train data/voc.data cfg/AlexNet.cfg backup/AlexNet.backup
设置训练使用的GPU
-gpus 0,1
4. cifar-10 使用示例
数据获取
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 ../..
选择config文件
classes=10train ?= data/cifar/train.listvalid ?= data/cifar/test.listlabels = data/cifar/labels.txtbackup = backup/top=2
创建网络配置文件
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]
训练
训练:
./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