项目场景:

在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’

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐