_base_ = [ '../_base_/models/fast_scnn.py', '../_base_/datasets/pascal_voc12.py', '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py' ] # Re-config the data sampler. data = dict(samples_per_gpu=8, workers_per_gpu=4) # Re-config the optimizer. optimizer = dict(type='SGD', lr=0.12, momentum=0.9, weight_decay=4e-5) # update num_classes of the segmentor. # model settings norm_cfg = dict(type='SyncBN', requires_grad=True, momentum=0.01) model = dict( type='EncoderDecoder', backbone=dict( type='FastSCNN', downsample_dw_channels=(32, 48), global_in_channels=64, global_block_channels=(64, 96, 128), global_block_strides=(2, 2, 1), global_out_channels=128, higher_in_channels=64, lower_in_channels=128, fusion_out_channels=128, out_indices=(0, 1, 2), norm_cfg=norm_cfg, align_corners=False), decode_head=dict( type='DepthwiseSeparableFCNHead', in_channels=128, channels=128, concat_input=False, num_classes=21, in_index=-1, norm_cfg=norm_cfg, align_corners=False, loss_decode=dict( type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.)), auxiliary_head=[ dict( type='FCNHead', in_channels=128, channels=32, num_convs=1, num_classes=21, in_index=-2, norm_cfg=norm_cfg, concat_input=False, align_corners=False, loss_decode=dict( type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), dict( type='FCNHead', in_channels=64, channels=32, num_convs=1, num_classes=21, in_index=-3, norm_cfg=norm_cfg, concat_input=False, align_corners=False, loss_decode=dict( type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)), ]) # model training and testing settings train_cfg = dict() test_cfg = dict(mode='whole')