104 lines
3.2 KiB
Python
104 lines
3.2 KiB
Python
_base_ = ['./_base_/datasets/mapillary_v1_2.py'] # v 1.2 labels
|
|
# _base_ = ['./_base_/datasets/mapillary_v2_0.py'] # v2.0 labels
|
|
custom_imports = dict(imports=[
|
|
'projects.mapillary_dataset.mmseg.datasets.mapillary_v1_2',
|
|
'projects.mapillary_dataset.mmseg.datasets.mapillary_v2_0',
|
|
])
|
|
|
|
norm_cfg = dict(type='SyncBN', requires_grad=True)
|
|
data_preprocessor = dict(
|
|
type='SegDataPreProcessor',
|
|
mean=[123.675, 116.28, 103.53],
|
|
std=[58.395, 57.12, 57.375],
|
|
bgr_to_rgb=True,
|
|
pad_val=0,
|
|
seg_pad_val=255,
|
|
size=(512, 1024))
|
|
|
|
model = dict(
|
|
type='EncoderDecoder',
|
|
data_preprocessor=data_preprocessor,
|
|
pretrained=None,
|
|
backbone=dict(
|
|
type='ResNet',
|
|
depth=101,
|
|
num_stages=4,
|
|
out_indices=(0, 1, 2, 3),
|
|
dilations=(1, 1, 2, 4),
|
|
strides=(1, 2, 1, 1),
|
|
norm_cfg=norm_cfg,
|
|
norm_eval=False,
|
|
style='pytorch',
|
|
contract_dilation=True),
|
|
decode_head=dict(
|
|
type='DepthwiseSeparableASPPHead',
|
|
in_channels=2048,
|
|
in_index=3,
|
|
channels=512,
|
|
dilations=(1, 12, 24, 36),
|
|
c1_in_channels=256,
|
|
c1_channels=48,
|
|
dropout_ratio=0.1,
|
|
num_classes=66, # v1.2
|
|
# num_classes=124, # v2.0
|
|
norm_cfg=norm_cfg,
|
|
align_corners=False,
|
|
loss_decode=dict(
|
|
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
|
|
auxiliary_head=dict(
|
|
type='FCNHead',
|
|
in_channels=1024,
|
|
in_index=2,
|
|
channels=256,
|
|
num_convs=1,
|
|
concat_input=False,
|
|
dropout_ratio=0.1,
|
|
num_classes=66, # v1.2
|
|
# num_classes=124, # v2.0
|
|
norm_cfg=norm_cfg,
|
|
align_corners=False,
|
|
loss_decode=dict(
|
|
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
|
train_cfg=dict(),
|
|
test_cfg=dict(mode='whole'))
|
|
default_scope = 'mmseg'
|
|
env_cfg = dict(
|
|
cudnn_benchmark=True,
|
|
mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
|
|
dist_cfg=dict(backend='nccl'))
|
|
vis_backends = [dict(type='LocalVisBackend')]
|
|
visualizer = dict(
|
|
type='SegLocalVisualizer',
|
|
vis_backends=[dict(type='LocalVisBackend')],
|
|
name='visualizer')
|
|
log_processor = dict(by_epoch=False)
|
|
log_level = 'INFO'
|
|
load_from = None
|
|
resume = False
|
|
tta_model = dict(type='SegTTAModel')
|
|
optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001)
|
|
optim_wrapper = dict(
|
|
type='OptimWrapper',
|
|
optimizer=dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001),
|
|
clip_grad=None)
|
|
param_scheduler = [
|
|
dict(
|
|
type='PolyLR',
|
|
eta_min=0.0001,
|
|
power=0.9,
|
|
begin=0,
|
|
end=240000,
|
|
by_epoch=False)
|
|
]
|
|
train_cfg = dict(
|
|
type='IterBasedTrainLoop', max_iters=240000, val_interval=24000)
|
|
val_cfg = dict(type='ValLoop')
|
|
test_cfg = dict(type='TestLoop')
|
|
default_hooks = dict(
|
|
timer=dict(type='IterTimerHook'),
|
|
logger=dict(type='LoggerHook', interval=50, log_metric_by_epoch=False),
|
|
param_scheduler=dict(type='ParamSchedulerHook'),
|
|
checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=24000),
|
|
sampler_seed=dict(type='DistSamplerSeedHook'),
|
|
visualization=dict(type='SegVisualizationHook'))
|