项目场景:
在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’