71 lines
2.1 KiB
Python
71 lines
2.1 KiB
Python
_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')
|