Swin Transformer目标检测实验——环境配置的步骤和避坑
既然环境什么的配好了,现在就该跑一下模型啦!
大佬的步骤:在这儿
数据集:在这儿
数据集的下载需要翻墙来注册账号,都是免费的(PS:我是找朋友帮忙下的,有谁找到能用的翻墙教程评论区留个言哈!)
其实这个实验大多数跟着b站up的教学就能完成,很多的问题都是步骤没看清导致的,排除这些之后就可能是自己电脑配置的问题了,分享一下电脑配置:
显卡:英伟达GTX1060
电脑:笔记本
处理器 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz 2.21 GHz
机带 RAM 16.0 GB
系统类型 64 位操作系统, 基于 x64 的处理器
笔和触控 没有可用于此显示器的笔或触控输入
可以说是平平无奇甚至有点拉的配置了,跑跑小项目还能动还好啦。
言归正传,这几天的swin-T模型复现实验做的很烦,我挑了重点的问题来介绍,这一节是测试自己的数据集,在执行命令后
python tools/train.py configs\swin\mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py
1、训练到第16代就出现 IndexError: list index out of range
,根据github(https://github.com/NVIDIA/apex/issues/694)上的解决方法也不能完全解决,之后会出现另一个报错,并且我目前还没找到解决伴生错误的解决方法,所以只能回滚到原来的apex设置。
coco_instance.py
# batch size 按显卡情况而定
samples_per_gpu=6,
workers_per_gpu=2,
2、可能是因为边安装软件边训练的缘故?之前在20代之前就会出现超出index的情况,所以还原apex的util设置之后重装了apex,修改了以下参数
checkpoint_config = dict(interval=2)
coco_instance.py
# batch size 按显卡情况而定
samples_per_gpu=8,
workers_per_gpu=6,
感觉跟batch size有关
随着第二步的完成,竟然奇迹般的解决了0.0,这个用词只是说明了自己没搞懂这背后的原理,但是有些程序不就是bug运行的嘛(狗头),所以,最后想想应该就是batch size设置的问题,还有就是不要边安装软件边训练模型。
如果我哪天搞懂了,会持续更新的(应该),有不懂的可以留言或私信,不定时回复,作者也在摸索中,希望大家一起进步呀!