_base_ = [ '../_base_/models/deeplabv3_r50-d8.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_20k.py' ] # dataset settings dataset_type = 'DSDLSegDataset' data_root = 'data/PASCAL_VOC2012' img_prefix = 'raw/VOCdevkit/VOC2012' train_ann = 'dsdl/dsdl_SemSeg_full/set-train/train.yaml' val_ann = 'dsdl/dsdl_SemSeg_full/set-val/val.yaml' crop_size = (512, 512) train_pipeline = [ dict(type='LoadImageFromFile'), dict(type='LoadAnnotations'), dict( type='RandomResize', scale=(2048, 512), ratio_range=(0.5, 2.0), keep_ratio=True), dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75), dict(type='RandomFlip', prob=0.5), dict(type='PhotoMetricDistortion'), dict(type='PackSegInputs') ] test_pipeline = [ dict(type='LoadImageFromFile'), dict(type='Resize', scale=(2048, 512), keep_ratio=True), # add loading annotation after ``Resize`` because ground truth # does not need to do resize data transform dict(type='LoadAnnotations'), dict(type='PackSegInputs') ] train_dataloader = dict( batch_size=4, num_workers=4, persistent_workers=True, sampler=dict(type='InfiniteSampler', shuffle=True), dataset=dict( type=dataset_type, data_root=data_root, data_prefix=dict(img_path=img_prefix, seg_map_path=img_prefix), ann_file=train_ann, pipeline=train_pipeline)) val_dataloader = dict( batch_size=1, num_workers=4, persistent_workers=True, sampler=dict(type='DefaultSampler', shuffle=False), dataset=dict( type=dataset_type, data_root=data_root, data_prefix=dict(img_path=img_prefix, seg_map_path=img_prefix), ann_file=val_ann, pipeline=test_pipeline)) test_dataloader = val_dataloader val_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU']) test_evaluator = val_evaluator data_preprocessor = dict(size=crop_size) model = dict( data_preprocessor=data_preprocessor, decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))