mmdetection运行后报错
Traceback (most recent call last):
File “tools/train.py”, line 121, in
main()
File “tools/train.py”, line 117, in main
runner.train()
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmengine/runner/runner.py”, line 1728, in train
self._train_loop = self.build_train_loop(
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmengine/runner/runner.py”, line 1520, in build_train_loop
loop = LOOPS.build(
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmengine/registry/registry.py”, line 570, in build
return self.build_func(cfg, *args, **kwargs, registry=self)
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmengine/registry/build_functions.py”, line 121, in build_from_cfg
obj = obj_cls(**args) # type: ignore
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmengine/runner/loops.py”, line 44, in init
super().init(runner, dataloader)
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmengine/runner/base_loop.py”, line 26, in init
self.dataloader = runner.build_dataloader(
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmengine/runner/runner.py”, line 1370, in build_dataloader
dataset = DATASETS.build(dataset_cfg)
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmengine/registry/registry.py”, line 570, in build
return self.build_func(cfg, *args, **kwargs, registry=self)
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmengine/registry/build_functions.py”, line 121, in build_from_cfg
obj = obj_cls(**args) # type: ignore
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmdet/datasets/base_det_dataset.py”, line 51, in init
super().init(*args, **kwargs)
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmengine/dataset/base_dataset.py”, line 247, in init
self.full_init()
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmdet/datasets/base_det_dataset.py”, line 89, in full_init
self.data_bytes, self.data_address = self._serialize_data()
File “/home/bigmaster/.conda/envs/mmdetection/lib/python3.8/site-packages/mmengine/dataset/base_dataset.py”, line 768, in _serialize_data
data_bytes = np.concatenate(data_list)
File “<array_function internals>”, line 200, in concatenate
ValueError: need at least one array to concatenate
解决办法
首先你要确保自己的数据集以及路径都没有问题,在没有问题的情况下进行以下修改
1、第一步在coco_detection.py文件的这个位置添加metainfo,根据自己的数据集添加标签和palette,palette是定义框的颜色,有几个标签就添加几个palette
metainfo= {
'classes':
('red-unpollinated', 'red-pollinated'),
# palette is a list of color tuples, which is used for visualization.
'palette':
[(220, 20, 60), (119, 11, 32)]
}
2、第二步
还是在coco_detection.py的文件中,在这两个位置添加语句
metainfo=metainfo,
修改完这两个位置以后再运行就运行成功了