pytorch-yolo2-master运行日志

本文记录了使用PyTorch实现YOLOv2目标检测的过程,包括预训练模型检测、数据集转换、VOC格式标签制作、配置文件修改、权重下载、模型训练以及遇到的NAN损失问题的解决策略。还提出了未来计划结合Focal Loss提升准确率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

github地址
longcw版本代码

1 首先用Pre-Trained Model做检测,测试模型

$wget http://pjreddie.com/media/files/yolo.weights
$python detect.py cfg/yolo.cfg yolo.weights data/dog.jpg

得到如下输出:

layer     filters    size              input                output
    0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32
    1 max          2 x 2 / 2   416 x 416 x  32   ->   208 x 208 x  32
    ......
   30 conv    425  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 425
   31 detection
Loading weights from yolo.weights... Done!
data/dog.jpg: Predicted in 0.014079 seconds.
truck: 0.934711
bicycle: 0.998013
dog: 0.990524

2 将自己的数据制作成VOC格式

在pytorch-yolo2-master文件下新建VOCdevkit文件夹:
VOCdevkit
|VOC2007
|Annotations
|ImageSets
|JPEGImages
|lables

3 制作VOC lables

$ wget http://pjreddie.com/media/files/voc_label.py
这一步会在pytorch-yolo2-master中生成2007_test.txt等文件
pythonvoclabel.py2007test.txtvoctrain.txt cat 2007_train.txt 2007_val.txt 2012_*.txt > voc_train.txt

4 修改cfg

根据data/voc.names生成自己的数据集的your.names
在cfg/voc.data中将names = data/voc.names换成names = data/your.names

train = train.txt
valid = 2007_test.txt
names = data/voc.names
backup = backup
gpus = 0,1,2,3 ###可以设置GPU

cfg/yolo-voc.cfg中是网络的运行参数,以及网络结构文件:
可以新建cfg/gesture.cfg,最后面的:classes=20修改为自己的类别数

5 下载Pretrained Convolutional Weights

wget http://pjreddie.com/media/files/darknet19_448.conv.23

6 训练Model

python train.py cfg/voc.data cfg/yolo-voc.cfg darknet19_448.conv.23

7 遇到的问题

1. NAN

跑到一半loss突然跑飞了,那就说明学习率设置的太大了,可以慢慢调小。
最好也使用warm up,也就是一开始使用很小的学习率:
base_lr: 0.001
step: -1, 500,20000,40000
scales=0.1,10,.1,.1
则前500次迭代会使用0.0001的学习率,之后才变回0.001的学习率。

8 待解决的问题

1. 结合Focal loss

初步猜想:直接将region_loss.py中中对分类的损失从nn.CrossEntropyLoss换成Focal_loss

2. 准确率不如darknet的版本

正在调整合适的学习率

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值