| # 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=19, | |
| in_index=-1, | |
| norm_cfg=norm_cfg, | |
| align_corners=False, | |
| loss_decode=dict( | |
| type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)), | |
| auxiliary_head=[ | |
| dict( | |
| type='FCNHead', | |
| in_channels=128, | |
| channels=32, | |
| num_convs=1, | |
| num_classes=19, | |
| in_index=-2, | |
| norm_cfg=norm_cfg, | |
| concat_input=False, | |
| align_corners=False, | |
| loss_decode=dict( | |
| type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)), | |
| dict( | |
| type='FCNHead', | |
| in_channels=64, | |
| channels=32, | |
| num_convs=1, | |
| num_classes=19, | |
| in_index=-3, | |
| norm_cfg=norm_cfg, | |
| concat_input=False, | |
| align_corners=False, | |
| loss_decode=dict( | |
| type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)), | |
| ], | |
| # model training and testing settings | |
| train_cfg=dict(), | |
| test_cfg=dict(mode='whole')) | |