mmpretrain의 구성 카테고리 문제 해결 하위 폴더 수가 지정된 클래스 수와 일치하지 않습니다.

mmpretrain의 구성 카테고리 문제 해결

AssertionError: 하위 폴더 수(2)가 지정된 클래스 수(1000)와 일치하지 않습니다. 데이터 폴더를 확인해주세요.


구체적인 오류 정보는 다음과 같습니다.

Traceback (most recent call last):
File "/home/lzj/ssd2t/01.my\_algo/mmpretrain-main/tools/train.py", line 166, in 
main()
File "/home/lzj/ssd2t/01.my\_algo/mmpretrain-main/tools/train.py", line 162, in main
runner.train()
File "/home/lzj/anaconda3/envs/mmpretrain/lib/python3.10/site-packages/mmengine/runner/runner.py", line 1703, in train
self.\_train\_loop = self.build\_train\_loop(
File "/home/lzj/anaconda3/envs/mmpretrain/lib/python3.10/site-packages/mmengine/runner/runner.py", line 1502, in build\_train\_loop
loop = EpochBasedTrainLoop(
File "/home/lzj/anaconda3/envs/mmpretrain/lib/python3.10/site-packages/mmengine/runner/loops.py", line 44, in **init**
super().**init**(runner, dataloader)
File "/home/lzj/anaconda3/envs/mmpretrain/lib/python3.10/site-packages/mmengine/runner/base\_loop.py", line 26, in **init**
self.dataloader = runner.build\_dataloader(
File "/home/lzj/anaconda3/envs/mmpretrain/lib/python3.10/site-packages/mmengine/runner/runner.py", line 1353, in build\_dataloader
dataset = DATASETS.build(dataset\_cfg)
File "/home/lzj/anaconda3/envs/mmpretrain/lib/python3.10/site-packages/mmengine/registry/registry.py", line 570, in build
return self.build\_func(cfg, \*args, \*\*kwargs, registry=self)
File "/home/lzj/anaconda3/envs/mmpretrain/lib/python3.10/site-packages/mmengine/registry/build\_functions.py", line 121, in build\_from\_cfg
obj = obj\_cls(\*\*args)  # type: ignore
File "/home/lzj/ssd2t/01.my\_algo/mmpretrain-main/mmpretrain/datasets/imagenet.py", line 122, in **init**
super().**init**(
File "/home/lzj/ssd2t/01.my\_algo/mmpretrain-main/mmpretrain/datasets/custom.py", line 219, in **init**
self.full\_init()
File "/home/lzj/ssd2t/01.my\_algo/mmpretrain-main/mmpretrain/datasets/base\_dataset.py", line 178, in full\_init
super().full\_init()
File "/home/lzj/anaconda3/envs/mmpretrain/lib/python3.10/site-packages/mmengine/dataset/base\_dataset.py", line 296, in full\_init
self.data\_list = self.load\_data\_list()
File "/home/lzj/ssd2t/01.my\_algo/mmpretrain-main/mmpretrain/datasets/custom.py", line 264, in load\_data\_list
samples = self.\_find\_samples()
File "/home/lzj/ssd2t/01.my\_algo/mmpretrain-main/mmpretrain/datasets/custom.py", line 234, in \_find\_samples
assert len(self.CLASSES) == len(classes), \
AssertionError: The number of subfolders (2) doesn't match the number of specified classes (1000). Please check the data folder.

구성 파일을 로 수정해야 하며 CustomDataset수정 data_rootdata_prefix

# dataset settings
dataset_type = 'CustomDataset'

train_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(type='RandomResizedCrop', scale=224),
    dict(type='RandomFlip', prob=0.5, direction='horizontal'),
    dict(type='PackInputs'),
]

train_dataloader = dict(
    batch_size=32,
    num_workers=5,
    dataset=dict(
        type=dataset_type,
        data_root='dataset',
        data_prefix='train',
        pipeline=train_pipeline),
    sampler=dict(type='DefaultSampler', shuffle=True),
)

추천

출처blog.csdn.net/weixin_45921929/article/details/133088965