从yolov5-6.0适配升级到yolov7

数据集适配

相信大家下载到yolov7 源码后最想做的就是试一下,yolov7是不是比我现在使用的目标检测模型要好。这个时候适配其数据集,就十分必要了。

yolov5数据集

从yolov5-6.0适配升级到yolov7_第1张图片
主要有Path、train、val、test、nc、names几个模块

yolov7数据集

从yolov5-6.0适配升级到yolov7_第2张图片主要有train、val、test、nc、names几个模块

不同点:取消了Path

适配方式

yolov5的Path相当于父路径,在yolov7中取消了,所以yolov7中给到具体的txt绝对路径即可,使用方式和yolov5一样,可以输入多个路径,表示不同的数据来源。

可能遇到的错误

从yolov5-6.0适配升级到yolov7_第3张图片
错误提示:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position 158: illegal multibyte sequence
**解决方法:**打开自定义数据集yaml时 以"rb"模式打开即可
从yolov5-6.0适配升级到yolov7_第4张图片

yolov7训练可能会遇到的问题

cpu和单GPU训练,基本直接就可以训练了。
单机多GPU训练时问题:
需要设置多GPU的训练方式,改DataParallel 为DistributedDataParallel

python -m torch.distributed.launch --nproc_per_node 4 --master_port 9527

nproc_per_node :小于等于GPU的个数

不作上述操作如果直接运行train.py可能会出现:
RuntimeError: cuDNN error: CUDNN_STATUS_BAD_PARAM

最后

经实际测试,yolov7训练很吃显存,后来不得已只能训练yolov7-tiny

你可能感兴趣的:(深度学习,深度学习,人工智能,目标检测)