因为最近用Detectron2,遇到了很多坑,此贴作为笔记,也为分享,随时更新。
平台:AutoDL
- 在训练中遇到报错关于 iscrowd = [int(o['iscrowd']) for o in gt]
原因为在数据集的标签中缺少iscrowd = 0的 key内容,开始时自己通过几句语言批量添加,但是报了新的错误,所以绕路解决该问题。
解决方案:因我采用的数据集标签为json格式,但是缺少iscrowd,报出以上错误。解决办法为先通过脚本将json文件生成xml文件,在通过另一个脚本生成coco的json文件,就可以了。注意,若train和val的xml文件是分开的,生成的各自json文件,两者可能在类别顺序可能不对应,需要进行统一,我的方法是以train.json为标准,通过txt手动批量替换修改val的json文件,注意不要替换错误,替换过程中不要更改了其他内容。
- 出现CUDA out of memory报错
可能你输入图片尺寸过大(一般为640,我调大过,报了错);
batch过大;
解决方式:以上两个参数调小、换卡、多卡。