关于mmdetection报错AssertionError: The `num_classes` (14) in Shared2FCBBoxHead of MMDataParallel does not matches the length of `CLASSES` 80) in CocoDataset修改最简单的方法,只需要在config文件里修改。
原config:data代码段
dataset_type = 'CocoDataset'
data_root = '/media/disk/coco/'
data = dict(
samples_per_gpu=8,
workers_per_gpu=8,
train=dict(
type=dataset_type,
ann_file=data_root + 'annotations/instances_train2017.json',
img_prefix=data_root + 'images/train/',
pipeline=train_pipeline),
val=dict(
type=dataset_type,
ann_file=data_root + 'annotations/instances_val2017.json',
img_prefix=data_root + 'images/val/',
pipeline=test_pipeline),
test=dict(
type=dataset_type,
ann_file=data_root + 'annotations/instances_val2017.json',
img_prefix=data_root + 'images/val/',
pipeline=test_pipeline)))
运行报错:
好多教程去修改coco.py和class_names.py,很麻烦,其实只需要在data里train,val,test里面加入你的classes就解决。
dataset_type = 'CocoDataset'
data_root = '/media/disk/coco/'
data = dict(
samples_per_gpu=8,
workers_per_gpu=8,
train=dict(
type=dataset_type,
ann_file=data_root + 'annotations/instances_train2017.json',
img_prefix=data_root + 'images/train/',
pipeline=train_pipeline,
classes=('','','','',...)),
val=dict(
type=dataset_type,
ann_file=data_root + 'annotations/instances_val2017.json',
img_prefix=data_root + 'images/val/',
pipeline=test_pipeline,
classes=('','','','',...)),
test=dict(
type=dataset_type,
ann_file=data_root + 'annotations/instances_val2017.json',
img_prefix=data_root + 'images/val/',
pipeline=test_pipeline,
classes=('','','','',...))))
classes内写清楚自己的类名,然后开始训练就不会报错了