数据集的制作
将labelme生成的标注文件记普通的json文件转成coco数据集格式的json文件
图像分辨率过大
如果不做任何调整:
会出现“killed”的报错,表示图片像素过大,显卡内存不够,无法支撑训练
显卡
换成更高性能的显卡,A40,运行成功,但是mAP只有15%。
尝试用crop
CSDN“太阳花的小绿豆”自己写的transforms.py文件,但是没有讲怎么将coco数据集的target进行crop的代码,这个作者的crop代码都是crop的voc数据集的图片和mask(现成的蒙版图片)。
尝试仿照强师兄的crop,会出现loss is nan的报错。最后判定是自己定义的crop函数没有定义好,因为加了crop之后就会出现“loss is nan”的报错。后来自己通过chatgpt去跑了一个randomcrop函数出来,放在transform,py文件里面后,实验就可以跑起来了,但是有时候会出现“loss is nan”的报错。通过设置随机种子以及多次训练,让程序可以一致跑下去了,但是loss的值非常大,在50多左右。这肯定是randomcrop函数设置定义错误了。
实验后发现:
image是Image.open读取的,是PIL对象。
target是从coco数据格式的json文件“instances_train_2017.json”里读出来的