在Jetson TX1上用YOLO训练VOC2007

在Jetson TX1 上训练darknet

本文介绍在Jetson TX1上用VOC2007数据集训练YOLO。

Reference:

YOLO主页

1 下载数据集

Pascal VOC 数据集是一个用来进行目标检测的数据集,官网链接pascal voc

从上面下载VOC2007 的数据集,解压后放到 /darknet/scripts

2 修改

scripts下的voc_label.py可以用来将voc数据集转换成yolo格式的数据集,对voc_label.py进行修改

sets=[('2007','train'),('2007','val')] //这里只用了VOC2007里的train和validation数据集

如果是自己的数据集,需要相应的修改成VOC格式,在进行修改,
可以参考这里YOLO(v1)用自己的数据集训练模型
做自己的VOC2007数据集

运行pyhon voc_label.py后可以发现/VOCdevkit/VOC2007 下多了一个labels文件夹。

修改YOLO 源码

然后修改/darknet/src/yolo.c中的源码

char *train_images="/home/ubuntu/darknet/scripts/2007_train.txt" 
char *backup_directory= "/home/ubuntu/darknet/backup" //用来保存中间的权重

重新训练

make编译后,可以重新训练

./darknet yolo train cfg/tiny-yolo.cfg darknet.conv.weights

darknet.conv.weights 是卷积网络在分类网络上预训练的权重,在此基础上训练,
可以从这里下载darknet.conv.weights

下载后放到/darknet目录即可

在Jetson TX1 上训练时的技巧

由于TX1 只有4G的共用内存和显存,因此batch需要重新设置,更改tiny-yolo.cfg的配置

batch=64
subdivisions=8

其中batch是64,指的是64张图片后更新权重,subdivions是为了适应GPU有限的资源,在这里GPU每次只处理 8(64/8)张图片.所以是进行8个新的子batch后更新权重。

此时可以在根目录下运行./tegrastats产看内存和现存资源占用情况,可以看到占用在3339/3994左右,还不会崩~

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值