Open yulongAI opened 1 year ago
一样的错误
估计是你没有严格按照样例数据集的格式去整理
估计是你没有严格按照样例数据集的格式去整理
数据集的格式是一样的,使用你在视频中演示的配置文件可以训练,但是换到你提供的其他配置文件以及我自己写的配置文件就会出现以上问题,所以应该是配置文件的事情,数据及的类别、地址相关信息都是一样的
请问如何解决的
这个问题我也遇到了,以下是我采取的解决步骤
1.jpg格式与JPG格式不是同一个格式,如果你的图片是jpg之外的任何格式,在ZihaoDataset.py(或你的同类文件中)将代码中增添形如以下形式的代码
def __init__(self,
img_suffix='.JPG', #或你的其他图片格式
**kwargs) -> None:
super().__init__(
img_suffix=img_suffix,
**kwargs)
2.在ZihaoDataset_PSPNet_20230818.py(或你的同类文件中)找到num_classes并改为你的标签类型的数量(注意,0,即背景也被认为是一类,除非在定义数据集时被排除),并确保所有data_root都指向了你的数据集所在地址
3.在mmseg/utils/class_names.py中加入自己定义的类别,例如以下形式
def ZihaoDataset_classes(): return [ '1', '2', ]
在我做完以上修改后能够正常运行,希望能对你有所帮助。
after_test_epoch: (VERY_HIGH ) RuntimeInfoHook
(NORMAL ) IterTimerHook
(BELOW_NORMAL) LoggerHook
after_test: (VERY_HIGH ) RuntimeInfoHook
after_run: (BELOW_NORMAL) LoggerHook
上面都是正常的,下面就开始报错了
Traceback (most recent call last): File "tools/train.py", line 104, in
main()
File "tools/train.py", line 100, in main
runner.train()
File "/environment/miniconda3/lib/python3.7/site-packages/mmengine/runner/runner.py", line 1704, in train
self._train_loop) # type: ignore
File "/environment/miniconda3/lib/python3.7/site-packages/mmengine/runner/runner.py", line 1498, in build_train_loop
runner=self, dataloader=self._train_dataloader))
File "/environment/miniconda3/lib/python3.7/site-packages/mmengine/registry/registry.py", line 570, in build
return self.build_func(cfg, args, kwargs, registry=self)
File "/environment/miniconda3/lib/python3.7/site-packages/mmengine/registry/build_functions.py", line 121, in build_from_cfg
obj = obj_cls(args) # type: ignore
File "/environment/miniconda3/lib/python3.7/site-packages/mmengine/runner/loops.py", line 219, in init
super().init(runner, dataloader)
File "/environment/miniconda3/lib/python3.7/site-packages/mmengine/runner/base_loop.py", line 27, in init
dataloader, seed=runner.seed, diff_rank_seed=diff_rank_seed)
File "/environment/miniconda3/lib/python3.7/site-packages/mmengine/runner/runner.py", line 1353, in build_dataloader
dataset = DATASETS.build(dataset_cfg)
File "/environment/miniconda3/lib/python3.7/site-packages/mmengine/registry/registry.py", line 570, in build
return self.build_func(cfg, args, kwargs, registry=self)
File "/environment/miniconda3/lib/python3.7/site-packages/mmengine/registry/build_functions.py", line 121, in build_from_cfg
obj = obj_cls(args) # type: ignore
File "/home/featurize/mmsegmentation/mmseg/datasets/ZihaoDataset.py", line 21, in init
**kwargs)
File "/home/featurize/mmsegmentation/mmseg/datasets/basesegdataset.py", line 142, in init
self.full_init()
File "/environment/miniconda3/lib/python3.7/site-packages/mmengine/dataset/base_dataset.py", line 305, in full_init
self.data_bytes, self.data_address = self._serialize_data()
File "/environment/miniconda3/lib/python3.7/site-packages/mmengine/dataset/base_dataset.py", line 765, in _serialize_data
data_bytes = np.concatenate(data_list)
File "<__array_function__ internals>", line 6, in concatenate
ValueError: need at least one array to concatenate
重新跟着步骤改了好几遍,发现还是不行,但是子豪兄的数据集可以,是我做的数据集有问题吗