|
|
_base_ = [ |
|
|
'/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/ttp_vit-sam-l.py', |
|
|
'/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/standard_512x512_300e_cgwx.py'] |
|
|
|
|
|
crop_size = (512, 512) |
|
|
|
|
|
model = dict( |
|
|
backbone=dict( |
|
|
encoder_cfg=dict(img_size=crop_size)), |
|
|
test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2))) |
|
|
|
|
|
train_pipeline = [ |
|
|
dict(type='MultiImgLoadImageFromFile'), |
|
|
dict(type='MultiImgLoadAnnotations'), |
|
|
dict(type='MultiImgRandomRotate', prob=0.5, degree=180), |
|
|
dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), |
|
|
dict(type='MultiImgRandomFlip', prob=0.5, direction='horizontal'), |
|
|
dict(type='MultiImgRandomFlip', prob=0.5, direction='vertical'), |
|
|
|
|
|
dict( |
|
|
type='MultiImgPhotoMetricDistortion', |
|
|
brightness_delta=10, |
|
|
contrast_range=(0.8, 1.2), |
|
|
saturation_range=(0.8, 1.2), |
|
|
hue_delta=10), |
|
|
dict(type='MultiImgPackSegInputs') |
|
|
] |
|
|
|
|
|
|
|
|
train_dataloader = dict( |
|
|
batch_size=8, |
|
|
num_workers=4, |
|
|
sampler=dict(type='DefaultSampler', shuffle=True), |
|
|
dataset=dict(pipeline=train_pipeline)) |
|
|
|
|
|
|
|
|
max_epochs = 300 |
|
|
|
|
|
optim_wrapper = dict( |
|
|
_delete_=True, |
|
|
type='OptimWrapper', |
|
|
optimizer=dict( |
|
|
type='AdamW', lr=0.0004, betas=(0.9, 0.999), weight_decay=0.05)) |
|
|
|
|
|
param_scheduler = [ |
|
|
dict( |
|
|
type='LinearLR', start_factor=1e-4, by_epoch=True, begin=0, end=5, convert_to_iter_based=True), |
|
|
dict( |
|
|
type='CosineAnnealingLR', |
|
|
T_max=max_epochs, |
|
|
begin=5, |
|
|
by_epoch=True, |
|
|
end=max_epochs, |
|
|
convert_to_iter_based=True |
|
|
), |
|
|
] |
|
|
|
|
|
train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=max_epochs, val_interval=5) |
|
|
default_hooks = dict(checkpoint=dict(interval=5)) |