利用FCOS训练模型
目录
前言
前面已经江苏成功远程连接服务器了,并且训练了一些简单的图像分类器。现在开始准备重新训练COCO数据集和COWC数据集。
COCO的重新训练
训练模型
结合毕业设计周记2的内容,重新在服务器端准备好COCO数据集。
|-coco
|-train2014 #82783张图片
|-val2014 #40524张图片
|-annotations #标注文件
终端输入下面的命令行开始训练。
nohup python -m torch.distributed.launch \
--nproc_per_node=4 \
--master_port=$((RANDOM + 10000)) \
tools/train_net.py \
--config-file configs/fcos/fcos_imprv_R_50_FPN_1x.yaml \
DATALOADER.NUM_WORKERS 2 \
SOLVER.IMS_PER_BATCH 8 \
OUTPUT_DIR out/fcos_imprv_R_50_FPN_1x &
'''nohup指令 让训练进程挂在后台运行,即使ssh连接断开也不会中断训练。可以用cat nuhup.out 查看任务进行情况'''
刚开始的时候,出现了一个bug: " UnicodeDecodeError: 'utf-8' codec can't decode byte..." 网上搜了一些博客,发现解决方法都不对。后来发现是数据集中有两个标价文件.json,我不是官网下载,使用的不是utf-8的编码。更改后,bug才消失。
训练花费了大约十个多小时的时间,模型保存在out/fcos_imprv_R_50_FPN_1x/modle_final.pth中。
模型测试
终端中命令行中输入
nohup python tools/test_net.py \
--config-file configs/fcos/fcos_imprv_R_50_FPN_1x.yaml \
MODEL.WEIGHT out/fcos_imprv_R_50_FPN_1x/model_final.pth \
TEST.IMS_PER_BATCH 4 &
不过刚开始出现如下图所示的错误提示
解决方法:降低numpy的版本。
pip install -U numpy==1.17.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
解决后,利用自己的模型和官方的模型分别进行测试,发现自己的模型在AP上差于官方的模型。 有可能是:学习率和批处理大小参数不同造成的区别。还需要继续调整。
![](https://i-blog.csdnimg.cn/blog_migrate/b2ca44344438d934506627d068aea8b9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a1a8e82845af084b4e8b5a76fbe92aab.png)
把训练的模型放入fcos_demo.py中进行,与官方提供的模型进行直观对比如下:
![](https://i-blog.csdnimg.cn/blog_migrate/b9f61aa7885b2da1df6c40fecdb64452.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/3d3b715244054f71723ba6a25f9cc435.jpeg)