项目场景:
通过mmdetection训练mask-rcnn模型,结果发生类个数方面的报错。
问题描述
AssertionError: The `num_classes` (1) in SCNetBBoxHead of MMDataParallel does not matches the length of `CLASSES` 80) in CocoDataset
原因分析:
是因为在pycharm修改mmdetection中的mmdet代码中的coco.py文件中的cocodataset代码时,把原来的80个类变成了1个类,但是mmdet相当于mmdetection中安装的一个小部件,我们是通过
python setup.py install --user
代码来将mmdet装在mmdetection里,所以如果修改了coco.py代码,相当于修改了mmdet源代码,并且由于pycharm的原因,并没有直接修改文件源代码,而不通过ide的改造能力强,没有编译,所以mmdetection还是保持了coco.py原始的代码,并没有发生改变。
解决方案:
由原因分析可以看出是未编译的问题,因此解决方法有二:
方法一:重新编译,即
python setup.py install --user
方法二:自行前往mmdet的代码处,手动打开记事本修改并保存即可解决。