YOLOV7使用CADCD数据集实验记录

2023年2月3日

在完成了CADC数据集的处理工作后,我们就可以便将其放入我们的项目中进行实验了。
首先看一下转换后的数据集:
YOLOV7使用CADCD数据集实验记录_第1张图片

值得注意的是博主开始时训练时使用了yolov7的初始化权重,由于cadc数据集中有几个分类在数据集中出现很少,以及博主在处理数据集时对一些目标种类进行了合并,因此学习效果并不好,因此博主想重新开始训练,即没有初始权重的情况下训练,这种状态下训练难度加大,同时模型需要修改的参数数量剧增,占用显存增大,以nvidia T4为例,在该GPU环境下使用batch-size=4时显存便占用了13G之多,而将其调整为6时便会直接爆显存,而且由于没有初始权重,训练的时间也会加长,博主开始设置迭代300次,而目前来看运行100次大概需要一天时间,至于效果只能等训练完成后再说了。

随后在运行了快100轮后程序突然终止了,且并没有提示错误只是显示

Process finished with exit code -1

看到有人提出这是在服务器上运行时网络中断导致的,并有人提出了解决方法:试一下。

run -> Edit Configurations -> Configuration -> Execution -> Emulate terminal in output console

但我并没有找到这个选项:
YOLOV7使用CADCD数据集实验记录_第2张图片

既然中断了便随后服务器中找到运行得到的权重文件

YOLOV7使用CADCD数据集实验记录_第3张图片

此时我们可以使用这个训练得到的权重模型来进行测试看下效果。
效果很差,mAP只有10%左右。呜呜呜,好在程序中考虑到存在中断问题,设计了开始迭代参数,将其设置为90,并将权重模型替换为best_epoch_weight

YOLOV7使用CADCD数据集实验记录_第4张图片
YOLOV7使用CADCD数据集实验记录_第5张图片

可以看到从90开始训练了

YOLOV7使用CADCD数据集实验记录_第6张图片
然后训练了一会后发现其又中断了:

Start Train
Epoch 101/300:  46%|| 484/1063 [05:02<05:55,  1.63it/s, loss=0.136, lr=0.000461
Process finished with exit code -1

这次吸取先前的教训,查看了一下服务器,发现只是在本地停止了在服务器上GPU依旧运行着:

YOLOV7使用CADCD数据集实验记录_第7张图片
好吧,那就让他慢慢跑吧,等运行完再说吧。
由此可见该错误是由于服务器与pycharm失联导致的,不用管他,等运行完就好了。如何知道其是否运行完,nvidia-smi就可以了,只要GPU还用着,自然就是还没跑完喽,只不过我们不知道已经运行到哪步而已,但我们的训练得到的权重文件会告诉我们这一切的。

YOLOV7使用CADCD数据集实验记录_第8张图片

2023年2月4日

今早一看,发现服务器也停止了,看来当时服务器依旧运行只是一个假象罢了,并且考虑到从头训练太过麻烦,而且效果还十分差劲。
YOLOV7使用CADCD数据集实验记录_第9张图片
因此开始从头考虑使用预训练模型来进行训练,先前使用的预训练模式是在ImageNet上获取的,与我的数据集差距较大,因此可以使用其他的一下预训练权重模型,这就涉及到一个概念成为迁移学习。

关于接下来的进展,大家可以搜索博主博文:迁移学习

你可能感兴趣的:(环境配置,YOLO,人工智能,深度学习)