0
点赞
收藏
分享

微信扫一扫

complex-YOLOv4(三):测试和评估作者训练好的模型以及训练模型

泠之屋 2022-03-31 阅读 100

一、数据集准备

这里数据集结构跟之前的结构不太一样。需要把数据集整理成如下结构:
跟上一篇博客强调的还是一样,不要自行裁剪点云数据,也不要整理划分valid和train数据集

在这里插入图片描述
*这里说一个问题,就是KITTI数据集是很大的,如果在pycharm里面看代码的话,就是暂时不要把data放到项目下,不然pycharm进行index工作量太大,总是出现卡死现象。等到看懂代码,再把data文件夹移动回来。
或者把index暂停下也可以(pycharm右下角)
请添加图片描述

二、运行环境准备

由于在complex-yolov3上调试耗费了很长时间,我认识到环境复原的重大意义(狗头)。
所以我尽可能配置与原作者编写代码时相同的环境。

python3.6
cuda10.2

由于服务器本身就装有cuda11.4,学习了解了多版本cuda并存
值得注意的是ubuntu20.04下载cuda10.2时,需要进行gcc和g++降级。管理多版本gcc也非常有用
然后pip install -r requirements.txt安装相应的依赖包就可以啦。

三、数据集可视化

cd src/data_process
python kitti_dataloader.py --output-width 608

四、训练模型

下载预训练参数,放在网盘里了

服务器有两个GPU,采用多GPU训练。

python train.py --dist-url 'tcp://127.0.0.1:29500' --dist-backend 'nccl' --multiprocessing-distributed --world-size 1 --rank 0 --pretrained_path ../checkpoints/complex_yolov4/complex_yolov4/complex_yolov4_mse_loss.pth

请添加图片描述

这里的train以及后面的test如果报错:

在这里插入图片描述
将报错行改下:加map_location这里的参数

model.load _state _dict(torch.load(configs,pretrained_path,map_location= 'cpu' if configs.no_cuda else 'cuda:{}' .format(configs.gpu_idx)

如果想要中断训练时,记得使用ctrl+c。而不是ctrl+z。如果使用ctrl+z,后续再训练会出现端口占用问题。但是也可以解决

五、浅测下mAP

1)test

python test.py --gpu_idx 0 --pretrained_path ../checkpoints/complex_yolov4/complex_yolov4_mse_loss.pth --cfgfile ./config/cfg/complex_yolov4.cfg --show_image

测试自己训练网络参数,换下pretrained_path就好
请添加图片描述
2)mAP

python evaluate.py --gpu_idx 0 --pretrained_path <PATH> 

请添加图片描述

举报

相关推荐

0 条评论