[pytorch报错]ValueError: num_samples should be a positive integer value, but got num_samples=0

项目场景:

在mmeg中运行自定义数据集报错情况!

问题描述:

运行代码后,mmSeg提示说

2021-12-08 18:39:33,991 - mmseg - INFO - Loaded 0 images
(说明模型没有加载数据,数据地址出错)

(报错信息)
....
....
....
  File "/home/*****/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 268, in __init__
    sampler = RandomSampler(dataset, generator=generator)
  File "/home/*****/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/utils/data/sampler.py", line 103, in __init__
    "value, but got num_samples={}".format(self.num_samples))
ValueError: num_samples should be a positive integer value, but got num_samples=0

原因分析:

找不到路径!


解决方案:

data = dict(
    samples_per_gpu=8,#batchsize
    workers_per_gpu=8,
    train=dict(
            type=dataset_type,
            data_root=data_root,
            img_dir='img_dir/train',
            ann_dir='ann_dir/train',
            pipeline=train_pipeline),
    val=dict(
        type=dataset_type,
        data_root=data_root,
        img_dir='img_dir/val',
        ann_dir='ann_dir/val',
        pipeline=test_pipeline),
    test=dict(
        type=dataset_type,
        data_root=data_root,
        img_dir='img_dir/val',
        ann_dir='ann_dir/val',
        pipeline=test_pipeline))

对于上面所说的img dir进行修改!改成自己的地址

第二种可能

在mmseg/datasets/mydataset.py文件中

import mmcv
import numpy as np
from PIL import Image

from .builder import DATASETS
from .custom import CustomDataset

@DATASETS.register_module()
class mydata_TCDataset(CustomDataset):
    CLASSES = ('background', 'change')
    PALETTE = [[0,0,0], [6, 230, 230]]
    def __init__(self, **kwargs):
        super(mydata_TCDataset, self).__init__(
            img_suffix='.jpg',
            seg_map_suffix='.png',
            reduce_zero_label=False,
            **kwargs)
        assert osp.exists(self.img_dir)

图片的后缀名类型不对,调整一下
img_suffix=‘.jpg’

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值