PyTorch版本如何Yolov3训练自己的数据集?

1.数据集

首先对数据进行标注,标注的工具LabelImg,标记参考:win10下使用labelImg标注图像

2.训练代码

使用PyTorch框架: yolov3下载(github)

3.数据预处理

3.1 将Annotations和images放入data目录下,并新建文件夹ImageSets,labels

3.2 运行根目录下makeTxt.py

 将数据分成训练集,测试集和验证集,比例可以在代码设置。在ImageSets得到四个文件,其中我们主要关注的是train.txt,test.txt,val.txt,主要存储图片名称。

3.3 运行根目录下voc_label.py

 生成labels下的具体内容,和data下的train.txt,test.txt,val.txt,得到完整的图片具体路径

4.配置文件

4.1 在data目录下新建xxx.data,配置训练的数据:

	classes=1
	train=data/train.txt
	valid=data/test.txt
	names=data/xxx.names
	backup=backup/
	eval=coco

4.2 在data目录下新建xxx.names,配置预测的类别:

    xxx

4.3 网络结构配置,在工程下cfg目录下有很多的yolov3网络结构,我们本次采用的是yolov3-tiny.cfg

5.训练

 python train.py  --device 0 --data data/xxx.data --cfg cfg/yolov3-tiny.cfg --epochs 10 --weights weights/yolov3-tiny.weights

训练结束得到最好的模型: best.pt

6.预测

 python detect.py --device 0 --names data/xxx.names --source data/samples/ --cfg cfg/yolov3-tiny.cfg --weights weights/best.pt --conf-thres 0.056 

7.注意:

运行:tensorboard --logdir=runs --> http://localhost:6006/

device 设置: 0 or 0,1 or cpu

CUDA_VISIBLE_DEVICES=1     # 只有编号为1的GPU对程序是可见的,在代码中gpu[0]指的就是这块GPU;
CUDA_VISIBLE_DEVICES=0,2,3 # 只有编号为0,2,3的GPU对程序是可见的,在代码中gpu[0]、gpu[1]和gpu[2]分别指的是第0、2和3块。

8.遇到的问题

8.1 cuda 内存溢出:

import os
os.environ["CUDA_VISIBLE_DEVICES"] = '1'	

8.2 OSError: [WinError 1455] 页面文件太小,无法完成操作

1.修改Dataloader中的num_workers参数为0(似乎仅针对windows系统下)
2.缩小batch_size
3.把训练的代码块放入if __name__=='__main__':

8.3 GPU利用率低:

1.把batch_size设置大些(如batch_size=512),尽可能利用GPU;
2.train_loader中pin_memory=True,num_workers=8或16,提高计算速度。

8.4 命令行如何debug:

import pdb; pdb.set_trace()  (n代表下一步)

参考红白细胞的数据识别

补充:

Yolov5源码:https://github.com/ultralytics/yolov5

Yolov4源码:https://github.com/AlexeyAB/darknet

Yolov3源码:https://github.com/ultralytics/yolov3

扫描二维码关注公众号,回复: 12567153 查看本文章

【Yolo5 train.py详讲】:
https://www.freesion.com/article/9638973025/#11_nvidiaapex_3

【Keras+TF+Yolo3】掌握图像标注、训练、识别(tf2填坑):
https://cungudafa.blog.csdn.net/article/details/105074825

使用apex混合精度训练加速NN:
Apex源码:https://github.com/NVIDIA/apex

猜你喜欢

转载自blog.csdn.net/cc13186851239/article/details/113661262