Solve the configuration category problem in mmpretrain The number of subfolders doesn't match the number of specified classes

Solve the configuration category problem in mmpretrain

AssertionError: The number of subfolders (2) doesn’t match the number of specified classes (1000). Please check the data folder.


The specific error information is as follows:

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.

The configuration file needs to be modified to CustomDataset, and pay attention to the modification data_rootanddata_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),
)

Guess you like

Origin blog.csdn.net/weixin_45921929/article/details/133088965