解决mmpretrain中的配置类别问题The number of subfolders doesn‘t match the number of specified classes

文章讲述了在使用mmpretrain时遇到的错误,关于数据集类别数量不匹配的问题,提示检查data_root下的subfolders数量与指定类别的数量不符,需修改配置文件以使用CustomDataset,并指定正确的data_root和data_prefix。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决mmpretrain中的配置类别问题

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


具体报错信息如下:

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),
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhijun.li@Studio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值