dataset类在tools/train文件中实例化,然后传入到train_detector()函数中用于构建dataloader
datasets = [build_dataset(cfg.data.train)] # 实例化dataset
if len(cfg.workflow) == 2: # 有验证流程的话则实例化验证数据集类
val_dataset = copy.deepcopy(cfg.data.val)
val_dataset.pipeline = cfg.data.train.pipeline
datasets.append(build_dataset(val_dataset))
实例化dataset时用到的参数在_base_/dataset/文件夹中进行配置
data = dict(
# samples_per_gpu=2,
# workers_per_gpu=2,
samples_per_gpu=1, #batch_sizes
workers_per_gpu=0, #number_works
train=dict( # 实例化train_dataset时用到的参数
type=dataset_type,
ann_file='E:\新建文件夹\datesets\SIXray\ImageSet/ann.txt',
img_prefix=data_root,
pipeline=train_pipeline
),
val=dict( # 实例化val_dataset时用到的参数
type=dataset_type,
ann_file='E:\新建文件夹\datesets\SIXray\ImageSet/ann.txt',
img_prefix=data_root,
pipeline=test_pipeline),
test=dict( # 实例化test_dataset时用到的参数
type=dataset_type,
ann_file='E:\新建文件夹\datesets\SIXray\ImageSet/ann.txt',
img_prefix=data_root,
pipeline=test_pipeline))
base/default_runtime.py文件中的workflow用于控制实例化的dataset的类型
workflow = [('train', 1),('val', 1)]