diff --git a/BAN-vit-b16-clip-mit-b0/distill/config.py b/BAN-vit-b16-clip-mit-b0/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..e4f1ee671173bd8a3b0122061fbcd9dc91c19a4c --- /dev/null +++ b/BAN-vit-b16-clip-mit-b0/distill/config.py @@ -0,0 +1,102 @@ +_base_ = [ + '/home/liuziyuan/proj/rmcd-kd/configs/_base_/models/KD-ban_vit-b16.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/standard_512x512_200k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint_student = None +checkpoint_teacher_l = None +checkpoint_teacher_m = None +checkpoint_teacher_s = None + +# model settings +model = dict( + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s), + + asymetric_input=True, + encoder_resolution=dict( + size=(224, 224), + mode='bilinear'), + image_encoder=dict( + frozen_exclude=[]), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + clip_channels=768, + fusion_index=[1, 2, 3], + side_enc_cfg=dict( + type='mmseg.MixVisionTransformer', + in_channels=3, + embed_dims=32, + num_stages=4, + num_layers=[2, 2, 2, 2], + num_heads=[1, 2, 5, 8], + patch_sizes=[7, 3, 3, 3], + sr_ratios=[8, 4, 2, 1], + out_indices=(0, 1, 2, 3), + mlp_ratio=4, + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.1)), + ban_dec_cfg=dict( + type='BAN_MLPDecoder', + in_channels=[32, 64, 160, 256], + channels=128, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=dict(type='SyncBN', requires_grad=True), + align_corners=False)), + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2))) + +optim_wrapper = dict( + _delete_=True, + type='AmpOptimWrapper', + optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.0001), + paramwise_cfg=dict( + custom_keys={ + 'img_encoder': dict(lr_mult=0.1, decay_mult=1.0), + 'norm': dict(decay_mult=0.), + 'mask_decoder': dict(lr_mult=10.) + }), + loss_scale='dynamic', + clip_grad=dict(max_norm=0.01, norm_type=2)) + +train_dataloader = dict(batch_size=8, num_workers=8) +val_dataloader = dict(batch_size=1, num_workers=1) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/BAN-vit-b16-clip-mit-b0/initial/config.py b/BAN-vit-b16-clip-mit-b0/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..3e3743dc8d167262ba7078c7187a292c8dc980e3 --- /dev/null +++ b/BAN-vit-b16-clip-mit-b0/initial/config.py @@ -0,0 +1,92 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/ban_vit-b16.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/standard_512x512_200k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict( + asymetric_input=True, + encoder_resolution=dict( + size=(224, 224), + mode='bilinear'), + image_encoder=dict( + frozen_exclude=[]), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + clip_channels=768, + fusion_index=[1, 2, 3], + side_enc_cfg=dict( + type='mmseg.MixVisionTransformer', + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + in_channels=3, + embed_dims=32, + num_stages=4, + num_layers=[2, 2, 2, 2], + num_heads=[1, 2, 5, 8], + patch_sizes=[7, 3, 3, 3], + sr_ratios=[8, 4, 2, 1], + out_indices=(0, 1, 2, 3), + mlp_ratio=4, + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.1)), + ban_dec_cfg=dict( + type='BAN_MLPDecoder', + in_channels=[32, 64, 160, 256], + channels=128, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=dict(type='SyncBN', requires_grad=True), + align_corners=False)), + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2))) + +optim_wrapper = dict( + _delete_=True, + type='AmpOptimWrapper', + optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.0001), + paramwise_cfg=dict( + custom_keys={ + 'img_encoder': dict(lr_mult=0.1, decay_mult=1.0), + 'norm': dict(decay_mult=0.), + 'mask_decoder': dict(lr_mult=10.) + }), + loss_scale='dynamic', + clip_grad=dict(max_norm=0.01, norm_type=2)) + +train_dataloader = dict(batch_size=8, num_workers=8) +val_dataloader = dict(batch_size=1, num_workers=1) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/BAN-vit-b16-clip-mit-b0/large/config.py b/BAN-vit-b16-clip-mit-b0/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..7b9063d7a6237c14824679d4b83cffa40fea637c --- /dev/null +++ b/BAN-vit-b16-clip-mit-b0/large/config.py @@ -0,0 +1,89 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/ban_vit-b16.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_large_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict( + asymetric_input=True, + encoder_resolution=dict( + size=(224, 224), + mode='bilinear'), + image_encoder=dict( + frozen_exclude=[]), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + clip_channels=768, + fusion_index=[1, 2, 3], + side_enc_cfg=dict( + type='mmseg.MixVisionTransformer', + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + in_channels=3, + embed_dims=32, + num_stages=4, + num_layers=[2, 2, 2, 2], + num_heads=[1, 2, 5, 8], + patch_sizes=[7, 3, 3, 3], + sr_ratios=[8, 4, 2, 1], + out_indices=(0, 1, 2, 3), + mlp_ratio=4, + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.1)), + ban_dec_cfg=dict( + type='BAN_MLPDecoder', + in_channels=[32, 64, 160, 256], + channels=128, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=dict(type='SyncBN', requires_grad=True), + align_corners=False)), + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2))) + +optim_wrapper = dict( + _delete_=True, + type='AmpOptimWrapper', + optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.0001), + paramwise_cfg=dict( + custom_keys={ + 'img_encoder': dict(lr_mult=0.1, decay_mult=1.0), + 'norm': dict(decay_mult=0.), + 'mask_decoder': dict(lr_mult=10.) + }), + loss_scale='dynamic', + clip_grad=dict(max_norm=0.01, norm_type=2)) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/BAN-vit-b16-clip-mit-b0/medium/config.py b/BAN-vit-b16-clip-mit-b0/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..96d1816ada330724dee21eb99f488ec68e83a041 --- /dev/null +++ b/BAN-vit-b16-clip-mit-b0/medium/config.py @@ -0,0 +1,89 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/ban_vit-b16.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_medium_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict( + asymetric_input=True, + encoder_resolution=dict( + size=(224, 224), + mode='bilinear'), + image_encoder=dict( + frozen_exclude=[]), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + clip_channels=768, + fusion_index=[1, 2, 3], + side_enc_cfg=dict( + type='mmseg.MixVisionTransformer', + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + in_channels=3, + embed_dims=32, + num_stages=4, + num_layers=[2, 2, 2, 2], + num_heads=[1, 2, 5, 8], + patch_sizes=[7, 3, 3, 3], + sr_ratios=[8, 4, 2, 1], + out_indices=(0, 1, 2, 3), + mlp_ratio=4, + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.1)), + ban_dec_cfg=dict( + type='BAN_MLPDecoder', + in_channels=[32, 64, 160, 256], + channels=128, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=dict(type='SyncBN', requires_grad=True), + align_corners=False)), + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2))) + +optim_wrapper = dict( + _delete_=True, + type='AmpOptimWrapper', + optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.0001), + paramwise_cfg=dict( + custom_keys={ + 'img_encoder': dict(lr_mult=0.1, decay_mult=1.0), + 'norm': dict(decay_mult=0.), + 'mask_decoder': dict(lr_mult=10.) + }), + loss_scale='dynamic', + clip_grad=dict(max_norm=0.01, norm_type=2)) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/BAN-vit-b16-clip-mit-b0/small/config.py b/BAN-vit-b16-clip-mit-b0/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..412ccf7d81a3f305dc47c15a812b466052bcb61a --- /dev/null +++ b/BAN-vit-b16-clip-mit-b0/small/config.py @@ -0,0 +1,89 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/ban_vit-b16.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_small_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict( + asymetric_input=True, + encoder_resolution=dict( + size=(224, 224), + mode='bilinear'), + image_encoder=dict( + frozen_exclude=[]), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + clip_channels=768, + fusion_index=[1, 2, 3], + side_enc_cfg=dict( + type='mmseg.MixVisionTransformer', + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + in_channels=3, + embed_dims=32, + num_stages=4, + num_layers=[2, 2, 2, 2], + num_heads=[1, 2, 5, 8], + patch_sizes=[7, 3, 3, 3], + sr_ratios=[8, 4, 2, 1], + out_indices=(0, 1, 2, 3), + mlp_ratio=4, + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.1)), + ban_dec_cfg=dict( + type='BAN_MLPDecoder', + in_channels=[32, 64, 160, 256], + channels=128, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=dict(type='SyncBN', requires_grad=True), + align_corners=False)), + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2))) + +optim_wrapper = dict( + _delete_=True, + type='AmpOptimWrapper', + optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.0001), + paramwise_cfg=dict( + custom_keys={ + 'img_encoder': dict(lr_mult=0.1, decay_mult=1.0), + 'norm': dict(decay_mult=0.), + 'mask_decoder': dict(lr_mult=10.) + }), + loss_scale='dynamic', + clip_grad=dict(max_norm=0.01, norm_type=2)) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/BAN-vit-b16-clip-mit-b2/initial/best_mIoU_iter_15000.pth b/BAN-vit-b16-clip-mit-b2/initial/best_mIoU_iter_15000.pth new file mode 100644 index 0000000000000000000000000000000000000000..b67f5e4c378efdbb9048c6a3d9944fa5d56fea49 --- /dev/null +++ b/BAN-vit-b16-clip-mit-b2/initial/best_mIoU_iter_15000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:184e2e7aadcb8e6af5ad71fc3dc2404d482ef5eaecf981b5343f8ea274bd0376 +size 367861071 diff --git a/BAN-vit-b16-clip-mit-b2/initial/config.py b/BAN-vit-b16-clip-mit-b2/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..8cfe8fb941ad37cc2fd1a45e865d3edfcfb97b91 --- /dev/null +++ b/BAN-vit-b16-clip-mit-b2/initial/config.py @@ -0,0 +1,15 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-clip-mit-b0/initial/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b2_20220624-66e8bf70.pth' # noqa + +# model settings +model = dict( + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) \ No newline at end of file diff --git a/BAN-vit-b16-clip-mit-b2/large/best_mIoU_iter_1000.pth b/BAN-vit-b16-clip-mit-b2/large/best_mIoU_iter_1000.pth new file mode 100644 index 0000000000000000000000000000000000000000..8493da657de389b5eee7339447dd3e52e888916a --- /dev/null +++ b/BAN-vit-b16-clip-mit-b2/large/best_mIoU_iter_1000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14580d22a98d70d35a75cbcdbbca2f476b2cda63de66a0d1fb4add85d558b138 +size 365786767 diff --git a/BAN-vit-b16-clip-mit-b2/large/config.py b/BAN-vit-b16-clip-mit-b2/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..33091fa42a5455a1a3e14f83a21acb46b6d5660b --- /dev/null +++ b/BAN-vit-b16-clip-mit-b2/large/config.py @@ -0,0 +1,15 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-clip-mit-b0/large/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b2_20220624-66e8bf70.pth' # noqa + +# model settings +model = dict( + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) \ No newline at end of file diff --git a/BAN-vit-b16-clip-mit-b2/medium/best_mIoU_iter_41000.pth b/BAN-vit-b16-clip-mit-b2/medium/best_mIoU_iter_41000.pth new file mode 100644 index 0000000000000000000000000000000000000000..0ce38ffdec11139464673e3ffbf352401d74fc6c --- /dev/null +++ b/BAN-vit-b16-clip-mit-b2/medium/best_mIoU_iter_41000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:133dcc00fa7b44c63f3030298839dbe1ca38077997a90f5886ed119fe9a0c69f +size 371713615 diff --git a/BAN-vit-b16-clip-mit-b2/medium/config.py b/BAN-vit-b16-clip-mit-b2/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..aab83da1a3a3ddc443559c087fbb07d122a84612 --- /dev/null +++ b/BAN-vit-b16-clip-mit-b2/medium/config.py @@ -0,0 +1,15 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-clip-mit-b0/medium/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b2_20220624-66e8bf70.pth' # noqa + +# model settings +model = dict( + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) \ No newline at end of file diff --git a/BAN-vit-b16-clip-mit-b2/small/best_mIoU_iter_23000.pth b/BAN-vit-b16-clip-mit-b2/small/best_mIoU_iter_23000.pth new file mode 100644 index 0000000000000000000000000000000000000000..ad3f63c394b81845cf9d2e3d71f8b1ff55855a8f --- /dev/null +++ b/BAN-vit-b16-clip-mit-b2/small/best_mIoU_iter_23000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93578f2d4d362516e8842e67760265f2639a8464d8673d0859ee1ace769d449e +size 369088591 diff --git a/BAN-vit-b16-clip-mit-b2/small/config.py b/BAN-vit-b16-clip-mit-b2/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..3751ade07866e5850d2ff65ab916520621a2470e --- /dev/null +++ b/BAN-vit-b16-clip-mit-b2/small/config.py @@ -0,0 +1,15 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-clip-mit-b0/small/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b2_20220624-66e8bf70.pth' # noqa + +# model settings +model = dict( + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) \ No newline at end of file diff --git a/BAN-vit-b16-in21k-mit-b0/initial/config.py b/BAN-vit-b16-in21k-mit-b0/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..871de4ff0c2b567122d18c25ef2f683b805b8cfd --- /dev/null +++ b/BAN-vit-b16-in21k-mit-b0/initial/config.py @@ -0,0 +1,92 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/ban_vit-b16.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/standard_512x512_200k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +vit_checkpoint_file = 'pretrain/augreg_B_16-i21k-300ep-lr_0.001-aug_medium1-wd_0.1-do_0.0-sd_0.0.pth' # noqa +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict( + pretrained=None, + asymetric_input=True, + encoder_resolution=dict( + size=(224, 224), + mode='bilinear'), + image_encoder=dict( + type='mmseg.VisionTransformer', + init_cfg=dict( + type='Pretrained', checkpoint=vit_checkpoint_file), + img_size=(224, 224), + patch_size=16, + in_channels=3, + embed_dims=768, + num_layers=12, + num_heads=12, + mlp_ratio=4, + out_indices=(5, 8, 11), + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.0, + with_cls_token=True, + norm_cfg=dict(type='LN', eps=1e-6), + act_cfg=dict(type='GELU'), + norm_eval=False, + patch_bias=True, + interpolate_mode='bicubic', + frozen_exclude=[]), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + clip_channels=768, + fusion_index=[1, 2, 3], + side_enc_cfg=dict( + type='mmseg.MixVisionTransformer', + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + in_channels=3, + embed_dims=32, + num_stages=4, + num_layers=[2, 2, 2, 2], + num_heads=[1, 2, 5, 8], + patch_sizes=[7, 3, 3, 3], + sr_ratios=[8, 4, 2, 1], + out_indices=(0, 1, 2, 3), + mlp_ratio=4, + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.1)), + ban_dec_cfg=dict( + type='BAN_MLPDecoder', + in_channels=[32, 64, 160, 256], + channels=128, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=dict(type='SyncBN', requires_grad=True), + align_corners=False, + )), + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2))) + +optim_wrapper = dict( + _delete_=True, + type='AmpOptimWrapper', + optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.0001), + paramwise_cfg=dict( + custom_keys={ + 'img_encoder': dict(lr_mult=0.1, decay_mult=1.0), + 'norm': dict(decay_mult=0.), + 'mask_decoder': dict(lr_mult=10.) + }), + loss_scale='dynamic', + clip_grad=dict(max_norm=0.01, norm_type=2)) + +train_dataloader = dict(batch_size=8, num_workers=8) +val_dataloader = dict(batch_size=1, num_workers=1) + +# find_unused_parameters=True \ No newline at end of file diff --git a/BAN-vit-b16-in21k-mit-b0/large/config.py b/BAN-vit-b16-in21k-mit-b0/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..11c9481db05867f869bda9c77957184a94d394a1 --- /dev/null +++ b/BAN-vit-b16-in21k-mit-b0/large/config.py @@ -0,0 +1,113 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/ban_vit-b16.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_large_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +vit_checkpoint_file = 'pretrain/augreg_B_16-i21k-300ep-lr_0.001-aug_medium1-wd_0.1-do_0.0-sd_0.0.pth' # noqa +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict( + pretrained=None, + asymetric_input=True, + encoder_resolution=dict( + size=(224, 224), + mode='bilinear'), + image_encoder=dict( + type='mmseg.VisionTransformer', + init_cfg=dict( + type='Pretrained', checkpoint=vit_checkpoint_file), + img_size=(224, 224), + patch_size=16, + in_channels=3, + embed_dims=768, + num_layers=12, + num_heads=12, + mlp_ratio=4, + out_indices=(5, 8, 11), + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.0, + with_cls_token=True, + norm_cfg=dict(type='LN', eps=1e-6), + act_cfg=dict(type='GELU'), + norm_eval=False, + patch_bias=True, + interpolate_mode='bicubic', + frozen_exclude=[]), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + clip_channels=768, + fusion_index=[1, 2, 3], + side_enc_cfg=dict( + type='mmseg.MixVisionTransformer', + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + in_channels=3, + embed_dims=32, + num_stages=4, + num_layers=[2, 2, 2, 2], + num_heads=[1, 2, 5, 8], + patch_sizes=[7, 3, 3, 3], + sr_ratios=[8, 4, 2, 1], + out_indices=(0, 1, 2, 3), + mlp_ratio=4, + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.1)), + ban_dec_cfg=dict( + type='BAN_MLPDecoder', + in_channels=[32, 64, 160, 256], + channels=128, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=dict(type='SyncBN', requires_grad=True), + align_corners=False, + )), + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2))) + +optim_wrapper = dict( + _delete_=True, + type='AmpOptimWrapper', + optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.0001), + paramwise_cfg=dict( + custom_keys={ + 'img_encoder': dict(lr_mult=0.1, decay_mult=1.0), + 'norm': dict(decay_mult=0.), + 'mask_decoder': dict(lr_mult=10.) + }), + loss_scale='dynamic', + clip_grad=dict(max_norm=0.01, norm_type=2)) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) diff --git a/BAN-vit-b16-in21k-mit-b0/medium/config.py b/BAN-vit-b16-in21k-mit-b0/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..0f86bc0f1dfd0ddc9abd3ba417d9b65ce2787dd0 --- /dev/null +++ b/BAN-vit-b16-in21k-mit-b0/medium/config.py @@ -0,0 +1,113 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/ban_vit-b16.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_medium_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +vit_checkpoint_file = 'pretrain/augreg_B_16-i21k-300ep-lr_0.001-aug_medium1-wd_0.1-do_0.0-sd_0.0.pth' # noqa +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict( + pretrained=None, + asymetric_input=True, + encoder_resolution=dict( + size=(224, 224), + mode='bilinear'), + image_encoder=dict( + type='mmseg.VisionTransformer', + init_cfg=dict( + type='Pretrained', checkpoint=vit_checkpoint_file), + img_size=(224, 224), + patch_size=16, + in_channels=3, + embed_dims=768, + num_layers=12, + num_heads=12, + mlp_ratio=4, + out_indices=(5, 8, 11), + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.0, + with_cls_token=True, + norm_cfg=dict(type='LN', eps=1e-6), + act_cfg=dict(type='GELU'), + norm_eval=False, + patch_bias=True, + interpolate_mode='bicubic', + frozen_exclude=[]), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + clip_channels=768, + fusion_index=[1, 2, 3], + side_enc_cfg=dict( + type='mmseg.MixVisionTransformer', + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + in_channels=3, + embed_dims=32, + num_stages=4, + num_layers=[2, 2, 2, 2], + num_heads=[1, 2, 5, 8], + patch_sizes=[7, 3, 3, 3], + sr_ratios=[8, 4, 2, 1], + out_indices=(0, 1, 2, 3), + mlp_ratio=4, + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.1)), + ban_dec_cfg=dict( + type='BAN_MLPDecoder', + in_channels=[32, 64, 160, 256], + channels=128, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=dict(type='SyncBN', requires_grad=True), + align_corners=False, + )), + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2))) + +optim_wrapper = dict( + _delete_=True, + type='AmpOptimWrapper', + optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.0001), + paramwise_cfg=dict( + custom_keys={ + 'img_encoder': dict(lr_mult=0.1, decay_mult=1.0), + 'norm': dict(decay_mult=0.), + 'mask_decoder': dict(lr_mult=10.) + }), + loss_scale='dynamic', + clip_grad=dict(max_norm=0.01, norm_type=2)) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) diff --git a/BAN-vit-b16-in21k-mit-b0/small/config.py b/BAN-vit-b16-in21k-mit-b0/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..a292ddc9b15198635c6d80fc00bef4ae34d399e2 --- /dev/null +++ b/BAN-vit-b16-in21k-mit-b0/small/config.py @@ -0,0 +1,113 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/ban_vit-b16.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_small_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +vit_checkpoint_file = 'pretrain/augreg_B_16-i21k-300ep-lr_0.001-aug_medium1-wd_0.1-do_0.0-sd_0.0.pth' # noqa +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict( + pretrained=None, + asymetric_input=True, + encoder_resolution=dict( + size=(224, 224), + mode='bilinear'), + image_encoder=dict( + type='mmseg.VisionTransformer', + init_cfg=dict( + type='Pretrained', checkpoint=vit_checkpoint_file), + img_size=(224, 224), + patch_size=16, + in_channels=3, + embed_dims=768, + num_layers=12, + num_heads=12, + mlp_ratio=4, + out_indices=(5, 8, 11), + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.0, + with_cls_token=True, + norm_cfg=dict(type='LN', eps=1e-6), + act_cfg=dict(type='GELU'), + norm_eval=False, + patch_bias=True, + interpolate_mode='bicubic', + frozen_exclude=[]), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + clip_channels=768, + fusion_index=[1, 2, 3], + side_enc_cfg=dict( + type='mmseg.MixVisionTransformer', + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + in_channels=3, + embed_dims=32, + num_stages=4, + num_layers=[2, 2, 2, 2], + num_heads=[1, 2, 5, 8], + patch_sizes=[7, 3, 3, 3], + sr_ratios=[8, 4, 2, 1], + out_indices=(0, 1, 2, 3), + mlp_ratio=4, + qkv_bias=True, + drop_rate=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.1)), + ban_dec_cfg=dict( + type='BAN_MLPDecoder', + in_channels=[32, 64, 160, 256], + channels=128, + dropout_ratio=0.1, + num_classes=2, + norm_cfg=dict(type='SyncBN', requires_grad=True), + align_corners=False, + )), + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2))) + +optim_wrapper = dict( + _delete_=True, + type='AmpOptimWrapper', + optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.0001), + paramwise_cfg=dict( + custom_keys={ + 'img_encoder': dict(lr_mult=0.1, decay_mult=1.0), + 'norm': dict(decay_mult=0.), + 'mask_decoder': dict(lr_mult=10.) + }), + loss_scale='dynamic', + clip_grad=dict(max_norm=0.01, norm_type=2)) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) diff --git a/BAN-vit-b16-in21k-mit-b2/initial/best_mIoU_iter_30000.pth b/BAN-vit-b16-in21k-mit-b2/initial/best_mIoU_iter_30000.pth new file mode 100644 index 0000000000000000000000000000000000000000..d222b42c31595a41750c23b899e6d1188ef84484 --- /dev/null +++ b/BAN-vit-b16-in21k-mit-b2/initial/best_mIoU_iter_30000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e408bf4ee3dab555f143f1dd975a5e643413fb7e6c3b7aa333b88cf824d0dd1e +size 455144133 diff --git a/BAN-vit-b16-in21k-mit-b2/initial/config.py b/BAN-vit-b16-in21k-mit-b2/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..cc09b5655139c74a33d8b439e0e7be759df6cb0a --- /dev/null +++ b/BAN-vit-b16-in21k-mit-b2/initial/config.py @@ -0,0 +1,15 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-in21k-mit-b0/initial/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b2_20220624-66e8bf70.pth' # noqa + +# model settings +model = dict( + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) \ No newline at end of file diff --git a/BAN-vit-b16-in21k-mit-b2/large/best_mIoU_iter_7000.pth b/BAN-vit-b16-in21k-mit-b2/large/best_mIoU_iter_7000.pth new file mode 100644 index 0000000000000000000000000000000000000000..e5cca688bbf3af85ffcf39847ad59f5315184748 --- /dev/null +++ b/BAN-vit-b16-in21k-mit-b2/large/best_mIoU_iter_7000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d8fc2343b5b9c252c86b7032711da60404eff6ab2b1f575f69a29615525c46c +size 451744005 diff --git a/BAN-vit-b16-in21k-mit-b2/large/config.py b/BAN-vit-b16-in21k-mit-b2/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..edd3f2bc08bf052da5f0439a45c6e1f2312e23d8 --- /dev/null +++ b/BAN-vit-b16-in21k-mit-b2/large/config.py @@ -0,0 +1,15 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-in21k-mit-b0/large/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b2_20220624-66e8bf70.pth' # noqa + +# model settings +model = dict( + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) \ No newline at end of file diff --git a/BAN-vit-b16-in21k-mit-b2/medium/best_mIoU_iter_6000.pth b/BAN-vit-b16-in21k-mit-b2/medium/best_mIoU_iter_6000.pth new file mode 100644 index 0000000000000000000000000000000000000000..6edd8234e1ab415f4d7155fd6330695344d04777 --- /dev/null +++ b/BAN-vit-b16-in21k-mit-b2/medium/best_mIoU_iter_6000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7917af7d31f1ee68ff7fda449bc0d048b2232bf147d15fd5aca12a5a9523da6 +size 451598277 diff --git a/BAN-vit-b16-in21k-mit-b2/medium/config.py b/BAN-vit-b16-in21k-mit-b2/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..bb1490b857c0f4c96bdef68f0df1058a1278f05a --- /dev/null +++ b/BAN-vit-b16-in21k-mit-b2/medium/config.py @@ -0,0 +1,15 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-in21k-mit-b0/medium/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b2_20220624-66e8bf70.pth' # noqa + +# model settings +model = dict( + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) \ No newline at end of file diff --git a/BAN-vit-b16-in21k-mit-b2/small/best_mIoU_iter_19000.pth b/BAN-vit-b16-in21k-mit-b2/small/best_mIoU_iter_19000.pth new file mode 100644 index 0000000000000000000000000000000000000000..5d372fcbd7947735d569c1c289f25c0dd9fefed0 --- /dev/null +++ b/BAN-vit-b16-in21k-mit-b2/small/best_mIoU_iter_19000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1642ec06e0bcdced0e04a56b9dc5ec75a37f5251c1b8512045311da40a42aaa1 +size 453552645 diff --git a/BAN-vit-b16-in21k-mit-b2/small/config.py b/BAN-vit-b16-in21k-mit-b2/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..2ece577e820c4c2c836bd40f928cbda68bb9b7d8 --- /dev/null +++ b/BAN-vit-b16-in21k-mit-b2/small/config.py @@ -0,0 +1,15 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-in21k-mit-b0/small/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b2_20220624-66e8bf70.pth' # noqa + +# model settings +model = dict( + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) \ No newline at end of file diff --git a/BAN-vit-l14-clip-mit-b0/distill/config.py b/BAN-vit-l14-clip-mit-b0/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..2756384bd689f05a511cc58e605a863ccb0a6522 --- /dev/null +++ b/BAN-vit-l14-clip-mit-b0/distill/config.py @@ -0,0 +1,40 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-clip-mit-b0/distill/config.py'] + +checkpoint_student = None +checkpoint_teacher_l = None +checkpoint_teacher_m = None +checkpoint_teacher_s = None + +# model settings +model = dict( + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s), + + type='DistillBAN', + encoder_resolution=dict( + size=(336, 336), + mode='bilinear'), + image_encoder=dict( + type='mmseg.VisionTransformer', + img_size=(336, 336), + patch_size=14, + patch_pad=0, + embed_dims=1024, + num_layers=18, + num_heads=16, + out_indices=(5, 11, 17)), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + fusion_index=[1, 2, 3], + clip_channels=1024), + ban_dec_cfg=dict( + in_channels=[32, 64, 160, 256]))) + +train_dataloader = dict(batch_size=8, num_workers=8) +val_dataloader = dict(batch_size=1, num_workers=1) diff --git a/BAN-vit-l14-clip-mit-b0/initial/config.py b/BAN-vit-l14-clip-mit-b0/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..9e01002a7bf8eb7b035104d3fa3478a0ccf89596 --- /dev/null +++ b/BAN-vit-l14-clip-mit-b0/initial/config.py @@ -0,0 +1,29 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-clip-mit-b0/initial/config.py'] + +pretrained = 'pretrain/clip_vit-large-patch14-336_3rdparty-0b5df9cb.pth' # noqa + +model = dict( + type='BAN', + pretrained=pretrained, + encoder_resolution=dict( + size=(336, 336), + mode='bilinear'), + image_encoder=dict( + type='mmseg.VisionTransformer', + img_size=(336, 336), + patch_size=14, + patch_pad=0, + embed_dims=1024, + num_layers=18, + num_heads=16, + out_indices=(5, 11, 17)), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + fusion_index=[1, 2, 3], + clip_channels=1024), + ban_dec_cfg=dict( + in_channels=[32, 64, 160, 256]))) + +train_dataloader = dict(batch_size=8, num_workers=8) +val_dataloader = dict(batch_size=1, num_workers=1) diff --git a/BAN-vit-l14-clip-mit-b0/large/config.py b/BAN-vit-l14-clip-mit-b0/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..e17f4717932d99c828993e9e4d364802b69d8705 --- /dev/null +++ b/BAN-vit-l14-clip-mit-b0/large/config.py @@ -0,0 +1,57 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-clip-mit-b0/large/config.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +pretrained = 'pretrain/clip_vit-large-patch14-336_3rdparty-0b5df9cb.pth' # noqa + +model = dict( + type='BAN', + pretrained=pretrained, + encoder_resolution=dict( + size=(336, 336), + mode='bilinear'), + image_encoder=dict( + type='mmseg.VisionTransformer', + img_size=(336, 336), + patch_size=14, + patch_pad=0, + embed_dims=1024, + num_layers=18, + num_heads=16, + out_indices=(5, 11, 17)), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + fusion_index=[1, 2, 3], + clip_channels=1024), + ban_dec_cfg=dict( + in_channels=[32, 64, 160, 256]))) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/BAN-vit-l14-clip-mit-b0/medium/config.py b/BAN-vit-l14-clip-mit-b0/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..9665a1f8d828b81e908c52caa6a6d143be4667c6 --- /dev/null +++ b/BAN-vit-l14-clip-mit-b0/medium/config.py @@ -0,0 +1,57 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-clip-mit-b0/medium/config.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +pretrained = 'pretrain/clip_vit-large-patch14-336_3rdparty-0b5df9cb.pth' # noqa + +model = dict( + type='BAN', + pretrained=pretrained, + encoder_resolution=dict( + size=(336, 336), + mode='bilinear'), + image_encoder=dict( + type='mmseg.VisionTransformer', + img_size=(336, 336), + patch_size=14, + patch_pad=0, + embed_dims=1024, + num_layers=18, + num_heads=16, + out_indices=(5, 11, 17)), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + fusion_index=[1, 2, 3], + clip_channels=1024), + ban_dec_cfg=dict( + in_channels=[32, 64, 160, 256]))) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/BAN-vit-l14-clip-mit-b0/small/config.py b/BAN-vit-l14-clip-mit-b0/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..344292b00de731bd91d14237489c0ef6cba17765 --- /dev/null +++ b/BAN-vit-l14-clip-mit-b0/small/config.py @@ -0,0 +1,57 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-b16-clip-mit-b0/small/config.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +pretrained = 'pretrain/clip_vit-large-patch14-336_3rdparty-0b5df9cb.pth' # noqa + +model = dict( + type='BAN', + pretrained=pretrained, + encoder_resolution=dict( + size=(336, 336), + mode='bilinear'), + image_encoder=dict( + type='mmseg.VisionTransformer', + img_size=(336, 336), + patch_size=14, + patch_pad=0, + embed_dims=1024, + num_layers=18, + num_heads=16, + out_indices=(5, 11, 17)), + decode_head=dict( + type='BitemporalAdapterHead', + ban_cfg=dict( + fusion_index=[1, 2, 3], + clip_channels=1024), + ban_dec_cfg=dict( + in_channels=[32, 64, 160, 256]))) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/BAN-vit-l14-clip-mit-b2/distill/best_mIoU_iter_15000.pth b/BAN-vit-l14-clip-mit-b2/distill/best_mIoU_iter_15000.pth new file mode 100644 index 0000000000000000000000000000000000000000..ec73a751d82df5e533a68eac722d3aa6536edd11 --- /dev/null +++ b/BAN-vit-l14-clip-mit-b2/distill/best_mIoU_iter_15000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f7b3f408dfe0131948e00ef1ccbb8bab424eea22a0cf3b79c490b6cbc31d999 +size 4300572453 diff --git a/BAN-vit-l14-clip-mit-b2/distill/config.py b/BAN-vit-l14-clip-mit-b2/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..d32f5d06820f22fa99f15304d68f9153b958d56c --- /dev/null +++ b/BAN-vit-l14-clip-mit-b2/distill/config.py @@ -0,0 +1,27 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-l14-clip-mit-b0/distill/config.py'] + +checkpoint_student = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/BAN/vit-l14-clip-mit-b2/initial/best_mIoU_iter_17000.pth' +checkpoint_teacher_l = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/BAN/vit-l14-clip-mit-b2/large/best_mIoU_iter_24000.pth' +checkpoint_teacher_m = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/BAN/vit-l14-clip-mit-b2/medium/best_mIoU_iter_10000.pth' +checkpoint_teacher_s = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/BAN/vit-l14-clip-mit-b2/small/best_mIoU_iter_35000.pth' + +# model settings +model = dict( + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s), + + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) + +train_dataloader = dict(batch_size=8, num_workers=8) +val_dataloader = dict(batch_size=1, num_workers=1) \ No newline at end of file diff --git a/BAN-vit-l14-clip-mit-b2/initial/best_mIoU_iter_17000.pth b/BAN-vit-l14-clip-mit-b2/initial/best_mIoU_iter_17000.pth new file mode 100644 index 0000000000000000000000000000000000000000..89511e3b16ff8967504e6a5103f6788c46c870dd --- /dev/null +++ b/BAN-vit-l14-clip-mit-b2/initial/best_mIoU_iter_17000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23d8a1374f3e46e16b79dc24e6aa96264805d185c827bc42a262a8724ca3b805 +size 1022820983 diff --git a/BAN-vit-l14-clip-mit-b2/initial/config.py b/BAN-vit-l14-clip-mit-b2/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..d87df950e053fd3689bde04c59155a2e7b910521 --- /dev/null +++ b/BAN-vit-l14-clip-mit-b2/initial/config.py @@ -0,0 +1,18 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-l14-clip-mit-b0/initial/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b2_20220624-66e8bf70.pth' # noqa + +# model settings +model = dict( + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) + +train_dataloader = dict(batch_size=8, num_workers=8) +val_dataloader = dict(batch_size=1, num_workers=1) \ No newline at end of file diff --git a/BAN-vit-l14-clip-mit-b2/large/best_mIoU_iter_24000.pth b/BAN-vit-l14-clip-mit-b2/large/best_mIoU_iter_24000.pth new file mode 100644 index 0000000000000000000000000000000000000000..148cfae6c3bacc4a8819fcba92d7ac0fa173a294 --- /dev/null +++ b/BAN-vit-l14-clip-mit-b2/large/best_mIoU_iter_24000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b08b38a473bbd18da541adfd8a0ed305365b5fe40d017a8e9cf380a26ac875e1 +size 1023807991 diff --git a/BAN-vit-l14-clip-mit-b2/large/config.py b/BAN-vit-l14-clip-mit-b2/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..5b6d3de9b386dce3a74f58a96325a4b380f2d574 --- /dev/null +++ b/BAN-vit-l14-clip-mit-b2/large/config.py @@ -0,0 +1,18 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-l14-clip-mit-b0/large/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b2_20220624-66e8bf70.pth' # noqa + +# model settings +model = dict( + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) + +train_dataloader = dict(batch_size=8, num_workers=8) +val_dataloader = dict(batch_size=1, num_workers=1) \ No newline at end of file diff --git a/BAN-vit-l14-clip-mit-b2/medium/best_mIoU_iter_10000.pth b/BAN-vit-l14-clip-mit-b2/medium/best_mIoU_iter_10000.pth new file mode 100644 index 0000000000000000000000000000000000000000..590c2c7b33c9af20e3275418165d49ae8d03e2df --- /dev/null +++ b/BAN-vit-l14-clip-mit-b2/medium/best_mIoU_iter_10000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4f2c30db1ed4e5347f9b041e627d533529b97f6743154dd8bce205f7ac1ac24 +size 1021734263 diff --git a/BAN-vit-l14-clip-mit-b2/medium/config.py b/BAN-vit-l14-clip-mit-b2/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..110afc4d62be66771217f90c79772e1d1df11bc5 --- /dev/null +++ b/BAN-vit-l14-clip-mit-b2/medium/config.py @@ -0,0 +1,18 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-l14-clip-mit-b0/medium/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b2_20220624-66e8bf70.pth' # noqa + +# model settings +model = dict( + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) + +train_dataloader = dict(batch_size=8, num_workers=8) +val_dataloader = dict(batch_size=1, num_workers=1) \ No newline at end of file diff --git a/BAN-vit-l14-clip-mit-b2/small/best_mIoU_iter_35000.pth b/BAN-vit-l14-clip-mit-b2/small/best_mIoU_iter_35000.pth new file mode 100644 index 0000000000000000000000000000000000000000..4d7c91524c37ffc9d2411e3c82861426f663de9e --- /dev/null +++ b/BAN-vit-l14-clip-mit-b2/small/best_mIoU_iter_35000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d0a0d046231ad98ec3ef6a1a066f41730b8e5ba79d37355a93d3d59639177d0 +size 1025483063 diff --git a/BAN-vit-l14-clip-mit-b2/small/config.py b/BAN-vit-l14-clip-mit-b2/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..f3b74219f29f95d8802882ff6e26a5a43aa32bd7 --- /dev/null +++ b/BAN-vit-l14-clip-mit-b2/small/config.py @@ -0,0 +1,18 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/BAN-vit-l14-clip-mit-b0/small/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b2_20220624-66e8bf70.pth' # noqa + +# model settings +model = dict( + decode_head=dict( + ban_cfg=dict( + side_enc_cfg=dict( + init_cfg=dict( + type='Pretrained', checkpoint=checkpoint), + embed_dims=64, + num_layers=[3, 4, 6, 3])), + ban_dec_cfg=dict( + in_channels=[64, 128, 320, 512]))) + +train_dataloader = dict(batch_size=8, num_workers=8) +val_dataloader = dict(batch_size=1, num_workers=1) \ No newline at end of file diff --git a/BIT/distill/best_mIoU_iter_71000.pth b/BIT/distill/best_mIoU_iter_71000.pth new file mode 100644 index 0000000000000000000000000000000000000000..a713a3ba1cbc7dc55a8aa91460f57857c2ba71ae --- /dev/null +++ b/BIT/distill/best_mIoU_iter_71000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd3bb9b5333aeeff68c4df27ab52f8f25f3548b09afa715b9a204cbf458c7110 +size 57559345 diff --git a/BIT/distill/config.py b/BIT/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..00f001e1669fd9c373dcbd11a5e5db8ac352d76f --- /dev/null +++ b/BIT/distill/config.py @@ -0,0 +1,52 @@ +_base_ = [ + '/home/liuziyuan/proj/rmcd-kd/configs/_base_/models/KD-bit_r18.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/standard_512x512_200k_cgwx.py'] + + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint_student = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/BIT/teacher_ckpt/initial/best_mIoU_iter_80000.pth' +checkpoint_teacher_l = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/BIT/teacher_ckpt/large/best_mIoU_iter_24000.pth' +checkpoint_teacher_m = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/BIT/teacher_ckpt/medium/best_mIoU_iter_8000.pth' +checkpoint_teacher_s = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/BIT/teacher_ckpt/small/best_mIoU_iter_74000.pth' + +model = dict( + # student + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s) +) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] + +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/BIT/initial/best_mIoU_iter_80000.pth b/BIT/initial/best_mIoU_iter_80000.pth new file mode 100644 index 0000000000000000000000000000000000000000..85ea093f7fa7f0540efaa43a1eb1199da1ff1f21 --- /dev/null +++ b/BIT/initial/best_mIoU_iter_80000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82f1f885af047d77cf07545897cae644585949239a3a5b44e66e89da9a0f545d +size 20862109 diff --git a/BIT/initial/config.py b/BIT/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..94ce11896f0b72c1a10b296253adac14687f06a9 --- /dev/null +++ b/BIT/initial/config.py @@ -0,0 +1,3 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/bit_r18.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/standard_512x512_200k_cgwx.py'] \ No newline at end of file diff --git a/BIT/large/best_mIoU_iter_24000.pth b/BIT/large/best_mIoU_iter_24000.pth new file mode 100644 index 0000000000000000000000000000000000000000..ecb4225a12302ab022081c17b7ae935fa630cafb --- /dev/null +++ b/BIT/large/best_mIoU_iter_24000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f36287b98dc665e93b015ec230aa64b43ff957eb87cc3ea145afb2a8afafc5bf +size 14719581 diff --git a/BIT/large/config.py b/BIT/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..70421ddb4c3c80d2b0b6d06756e32c1be528865a --- /dev/null +++ b/BIT/large/config.py @@ -0,0 +1,29 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/bit_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_large_512x512_100k_cgwx.py'] + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/BIT/medium/best_mIoU_iter_8000.pth b/BIT/medium/best_mIoU_iter_8000.pth new file mode 100644 index 0000000000000000000000000000000000000000..19e5a564522a5d0f4cec0952a6eb47437d6c1542 --- /dev/null +++ b/BIT/medium/best_mIoU_iter_8000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b2aca7ff4a2f2f2e6ea8d1c5419f5c1fd1cc92521466a0ffd88f58625c301f0 +size 12964765 diff --git a/BIT/medium/config.py b/BIT/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..e33a23ec46cddacc5573ec2ea6e65b5842220403 --- /dev/null +++ b/BIT/medium/config.py @@ -0,0 +1,29 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/bit_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_medium_512x512_100k_cgwx.py'] + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/BIT/small/best_mIoU_iter_74000.pth b/BIT/small/best_mIoU_iter_74000.pth new file mode 100644 index 0000000000000000000000000000000000000000..c72bb7dfa8a7adc2510f9471143dfa21912c507b --- /dev/null +++ b/BIT/small/best_mIoU_iter_74000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cba07cd8ddb7fc840f90b2318a0f695fa256b2782c92aa615f22815dc5174b8d +size 20356061 diff --git a/BIT/small/config.py b/BIT/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..fc60486b91cd899e7f28a37ac636a0f34d463d50 --- /dev/null +++ b/BIT/small/config.py @@ -0,0 +1,29 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/bit_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_small_512x512_100k_cgwx.py'] + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) diff --git a/CGNet/distill/best_mIoU_iter_74000.pth b/CGNet/distill/best_mIoU_iter_74000.pth new file mode 100644 index 0000000000000000000000000000000000000000..086db27bf20c7001b86afee8bac185907d15f6ec --- /dev/null +++ b/CGNet/distill/best_mIoU_iter_74000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e8f5c9e2e8d93819dfa506e57e001549ad29ec6429361f07209d24e2e00be2c +size 636796385 diff --git a/CGNet/distill/config.py b/CGNet/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..0bb1e29fd714da7dc19dffa8682b479ea41f2151 --- /dev/null +++ b/CGNet/distill/config.py @@ -0,0 +1,66 @@ +_base_ = [ + '/home/liuziyuan/proj/rmcd-kd/configs/_base_/models/KD-cgnet.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/standard_512x512_200k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint_student = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints/CGNet/CGNet/best_mIoU_iter_155000.pth' +checkpoint_teacher_l = '/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt_3/CGNet/large/best_mIoU_iter_77500.pth' +checkpoint_teacher_m = '/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt_3/CGNet/medium/best_mIoU_iter_9000.pth' +checkpoint_teacher_s = '/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/CGNet/small/best_mIoU_iter_92000.pth' +# checkpoint_teacher_s = '/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt_3/CGNet/small/best_mIoU_iter_79000.pth' + +model = dict( + # student + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s), + + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2)), +) + +# optimizer +optimizer = dict( + type='AdamW', + lr=5e-4, + betas=(0.9, 0.999), + weight_decay=0.0025) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] + +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/CGNet/initial/best_mIoU_iter_155000.pth b/CGNet/initial/best_mIoU_iter_155000.pth new file mode 100644 index 0000000000000000000000000000000000000000..c7c879b90240866ad72cd24a74fff994e0f53cd6 --- /dev/null +++ b/CGNet/initial/best_mIoU_iter_155000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc09d1e05aa2bcfbe43977e044a97ea8d2e79355eaef521d6e8ca097a8589fce +size 178862217 diff --git a/CGNet/initial/config.py b/CGNet/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..1a5269377be122b7a05fd65726c176bccffe74a9 --- /dev/null +++ b/CGNet/initial/config.py @@ -0,0 +1,20 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/cgnet.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/standard_512x512_200k_cgwx.py'] + +# optimizer +optimizer = dict( + type='AdamW', + lr=5e-4, + betas=(0.9, 0.999), + weight_decay=0.0025) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + +crop_size = (512, 512) +model = dict( + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2)), + ) diff --git a/CGNet/large/best_mIoU_iter_77500.pth b/CGNet/large/best_mIoU_iter_77500.pth new file mode 100644 index 0000000000000000000000000000000000000000..7ae04339edc796aca122f9569db8502731c7f703 --- /dev/null +++ b/CGNet/large/best_mIoU_iter_77500.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f885f51540841c203b7361c06bf330630117b27d49264ac7e6d4426199875f5 +size 167442121 diff --git a/CGNet/large/config.py b/CGNet/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..a6d2ae57c90368dd1d357847536ef02428197c6c --- /dev/null +++ b/CGNet/large/config.py @@ -0,0 +1,98 @@ +_base_ = [ + '/home/liuziyuan/proj/rmcd-kd/configs/_base_/models/cgnet.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/train_large_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +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='MultiImgExchangeTime', prob=0.5), + dict( + type='MultiImgPhotoMetricDistortion', + brightness_delta=10, + contrast_range=(0.8, 1.2), + saturation_range=(0.8, 1.2), + hue_delta=10), + dict(type='MultiImgPackSegInputs') +] +test_pipeline = [ + dict(type='MultiImgLoadImageFromFile'), + dict(type='MultiImgResize', scale=(512, 512), keep_ratio=True), + # add loading annotation after ``Resize`` because ground truth + # does not need to do resize data transform + dict(type='MultiImgLoadAnnotations'), + dict(type='MultiImgPackSegInputs') +] + +img_ratios = [0.75, 1.0, 1.25] + +tta_pipeline = [ + dict(type='MultiImgLoadImageFromFile', backend_args=None), + dict( + type='TestTimeAug', + transforms=[ + [ + dict(type='MultiImgResize', scale_factor=r, keep_ratio=True) + for r in img_ratios + ], + [ + dict(type='MultiImgRandomFlip', prob=0., direction='horizontal'), + dict(type='MultiImgRandomFlip', prob=1., direction='horizontal') + ], + [dict(type='MultiImgLoadAnnotations')], + [dict(type='MultiImgPackSegInputs')] + ]) +] + +# optimizer +optimizer = dict( + type='AdamW', + lr=5e-4, + betas=(0.9, 0.999), + weight_decay=0.0025) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + +crop_size = (512, 512) + +model = dict( + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2)), + ) + + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/CGNet/medium/best_mIoU_iter_9000.pth b/CGNet/medium/best_mIoU_iter_9000.pth new file mode 100644 index 0000000000000000000000000000000000000000..193033675a532ec7e68bb91859100582c1c13d6c --- /dev/null +++ b/CGNet/medium/best_mIoU_iter_9000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36690f63cd0c566b02ffc8d40ae0843b7e2e273e02e6e64ce5da79d5d9b4f17e +size 157428169 diff --git a/CGNet/medium/config.py b/CGNet/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..912f4acfa94550a8de3501785161b064bea57f9f --- /dev/null +++ b/CGNet/medium/config.py @@ -0,0 +1,98 @@ +_base_ = [ + '/home/liuziyuan/proj/rmcd-kd/configs/_base_/models/cgnet.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/train_medium_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +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='MultiImgExchangeTime', prob=0.5), + dict( + type='MultiImgPhotoMetricDistortion', + brightness_delta=10, + contrast_range=(0.8, 1.2), + saturation_range=(0.8, 1.2), + hue_delta=10), + dict(type='MultiImgPackSegInputs') +] +test_pipeline = [ + dict(type='MultiImgLoadImageFromFile'), + dict(type='MultiImgResize', scale=(512, 512), keep_ratio=True), + # add loading annotation after ``Resize`` because ground truth + # does not need to do resize data transform + dict(type='MultiImgLoadAnnotations'), + dict(type='MultiImgPackSegInputs') +] + +img_ratios = [0.75, 1.0, 1.25] + +tta_pipeline = [ + dict(type='MultiImgLoadImageFromFile', backend_args=None), + dict( + type='TestTimeAug', + transforms=[ + [ + dict(type='MultiImgResize', scale_factor=r, keep_ratio=True) + for r in img_ratios + ], + [ + dict(type='MultiImgRandomFlip', prob=0., direction='horizontal'), + dict(type='MultiImgRandomFlip', prob=1., direction='horizontal') + ], + [dict(type='MultiImgLoadAnnotations')], + [dict(type='MultiImgPackSegInputs')] + ]) +] + +# optimizer +optimizer = dict( + type='AdamW', + lr=5e-4, + betas=(0.9, 0.999), + weight_decay=0.0025) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + +crop_size = (512, 512) + +model = dict( + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2)), + ) + + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/CGNet/small/best_mIoU_iter_92000.pth b/CGNet/small/best_mIoU_iter_92000.pth new file mode 100644 index 0000000000000000000000000000000000000000..ddebf9e55a91d28e30ff5c4201325d6df9cd02c7 --- /dev/null +++ b/CGNet/small/best_mIoU_iter_92000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16b7b4c5c1c5907bc07a37eaa8bf73dd85c18571f98dd12ef26d31fedaee8836 +size 169707657 diff --git a/CGNet/small/config.py b/CGNet/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..328f0311d405faa8fe0a6d8e2faba26da650e5bb --- /dev/null +++ b/CGNet/small/config.py @@ -0,0 +1,98 @@ +_base_ = [ + '/home/liuziyuan/proj/rmcd-kd/configs/_base_/models/cgnet.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/train_small_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +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='MultiImgExchangeTime', prob=0.5), + dict( + type='MultiImgPhotoMetricDistortion', + brightness_delta=10, + contrast_range=(0.8, 1.2), + saturation_range=(0.8, 1.2), + hue_delta=10), + dict(type='MultiImgPackSegInputs') +] +test_pipeline = [ + dict(type='MultiImgLoadImageFromFile'), + dict(type='MultiImgResize', scale=(512, 512), keep_ratio=True), + # add loading annotation after ``Resize`` because ground truth + # does not need to do resize data transform + dict(type='MultiImgLoadAnnotations'), + dict(type='MultiImgPackSegInputs') +] + +img_ratios = [0.75, 1.0, 1.25] + +tta_pipeline = [ + dict(type='MultiImgLoadImageFromFile', backend_args=None), + dict( + type='TestTimeAug', + transforms=[ + [ + dict(type='MultiImgResize', scale_factor=r, keep_ratio=True) + for r in img_ratios + ], + [ + dict(type='MultiImgRandomFlip', prob=0., direction='horizontal'), + dict(type='MultiImgRandomFlip', prob=1., direction='horizontal') + ], + [dict(type='MultiImgLoadAnnotations')], + [dict(type='MultiImgPackSegInputs')] + ]) +] + +# optimizer +optimizer = dict( + type='AdamW', + lr=5e-4, + betas=(0.9, 0.999), + weight_decay=0.0025) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + +crop_size = (512, 512) + +model = dict( + test_cfg=dict(mode='slide', crop_size=crop_size, stride=(crop_size[0]//2, crop_size[1]//2)), + ) + + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeFormer-mit-b0/distill/best_mIoU_iter_38000.pth b/ChangeFormer-mit-b0/distill/best_mIoU_iter_38000.pth new file mode 100644 index 0000000000000000000000000000000000000000..ed44d1cdfda072146bd0f610b40738e417cd8a3d --- /dev/null +++ b/ChangeFormer-mit-b0/distill/best_mIoU_iter_38000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fac0a331f476cd4fa013f174897ec84e529b022e8b2e026ad37c828d9cb3f128 +size 67654849 diff --git a/ChangeFormer-mit-b0/distill/config.py b/ChangeFormer-mit-b0/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..365a03aa1cbef946fe91cc8c45a58027027bac48 --- /dev/null +++ b/ChangeFormer-mit-b0/distill/config.py @@ -0,0 +1,63 @@ +_base_ = [ + '/home/liuziyuan/proj/rmcd-kd/configs/_base_/models/KD-changeformer_mit-b0.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/standard_512x512_200k_cgwx.py'] + +checkpoint_student = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeFormer-mit-b0/teacher_ckpt/initial/best_mIoU_iter_60000.pth' +checkpoint_teacher_l = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeFormer-mit-b0/teacher_ckpt/large/best_mIoU_iter_29000.pth' +checkpoint_teacher_m = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeFormer-mit-b0/teacher_ckpt/medium/best_mIoU_iter_31000.pth' +checkpoint_teacher_s = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeFormer-mit-b0/teacher_ckpt/small/best_mIoU_iter_9000.pth' + +model = dict( + + # student + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s), + + decode_head=dict(num_classes=2)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.00006, betas=(0.9, 0.999), weight_decay=0.01) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer, + paramwise_cfg=dict( + custom_keys={ + 'pos_block': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.), + 'head': dict(lr_mult=10.) + })) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=50000, + eta_min=0.0, + by_epoch=False, + ) +] + +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=50000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeFormer-mit-b0/initial/best_mIoU_iter_60000.pth b/ChangeFormer-mit-b0/initial/best_mIoU_iter_60000.pth new file mode 100644 index 0000000000000000000000000000000000000000..ff694b089b407709ac52e3a7484d40f646f39db8 --- /dev/null +++ b/ChangeFormer-mit-b0/initial/best_mIoU_iter_60000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a2b08bf6bcb85ce65c2b6f7bb2f36e361ff5fe475d3b424c38c92844561b67f +size 23286657 diff --git a/ChangeFormer-mit-b0/initial/config.py b/ChangeFormer-mit-b0/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..0ae0cd79f07cf012c58c603c1b242f3098835e64 --- /dev/null +++ b/ChangeFormer-mit-b0/initial/config.py @@ -0,0 +1,22 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changeformer_mit-b0.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/standard_512x512_200k_cgwx.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict(pretrained=checkpoint, decode_head=dict(num_classes=2)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.00006, betas=(0.9, 0.999), weight_decay=0.01) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer, + paramwise_cfg=dict( + custom_keys={ + 'pos_block': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.), + 'head': dict(lr_mult=10.) + })) \ No newline at end of file diff --git a/ChangeFormer-mit-b0/large/best_mIoU_iter_29000.pth b/ChangeFormer-mit-b0/large/best_mIoU_iter_29000.pth new file mode 100644 index 0000000000000000000000000000000000000000..f5640afee2139c5895c26cf59904620160c62d0e --- /dev/null +++ b/ChangeFormer-mit-b0/large/best_mIoU_iter_29000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0bb120ad3215655f849f62eabf9c2b58dd0f70fa4cd088a3e1ad373e385518c +size 19236417 diff --git a/ChangeFormer-mit-b0/large/config.py b/ChangeFormer-mit-b0/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..1d5444e5401d365d79ed491381d51d0d833abc32 --- /dev/null +++ b/ChangeFormer-mit-b0/large/config.py @@ -0,0 +1,54 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changeformer_mit-b0.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_large_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict(pretrained=checkpoint, decode_head=dict(num_classes=2)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.00006, betas=(0.9, 0.999), weight_decay=0.01) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer, + paramwise_cfg=dict( + custom_keys={ + 'pos_block': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.), + 'head': dict(lr_mult=10.) + })) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] + +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +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=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeFormer-mit-b0/medium/best_mIoU_iter_31000.pth b/ChangeFormer-mit-b0/medium/best_mIoU_iter_31000.pth new file mode 100644 index 0000000000000000000000000000000000000000..c91c7ed859e42bf873c41c1fa7a7af57283d3ea7 --- /dev/null +++ b/ChangeFormer-mit-b0/medium/best_mIoU_iter_31000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d72eec52be75a14f58cb830f75e959313e5027cba77f9abd4eb755e7df46d404 +size 19499713 diff --git a/ChangeFormer-mit-b0/medium/config.py b/ChangeFormer-mit-b0/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..ac42702fba3f151b3773448b7e1c99377fe8b5c1 --- /dev/null +++ b/ChangeFormer-mit-b0/medium/config.py @@ -0,0 +1,54 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changeformer_mit-b0.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_medium_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict(pretrained=checkpoint, decode_head=dict(num_classes=2)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.00006, betas=(0.9, 0.999), weight_decay=0.01) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer, + paramwise_cfg=dict( + custom_keys={ + 'pos_block': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.), + 'head': dict(lr_mult=10.) + })) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] + +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +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=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeFormer-mit-b0/small/best_mIoU_iter_9000.pth b/ChangeFormer-mit-b0/small/best_mIoU_iter_9000.pth new file mode 100644 index 0000000000000000000000000000000000000000..44e56e51024114eb31e55d115398bc4c874e381f --- /dev/null +++ b/ChangeFormer-mit-b0/small/best_mIoU_iter_9000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebce4514a64b65b6f849a154f3f2b232778aa0a06549d7a52eadcda07548f5c7 +size 16669121 diff --git a/ChangeFormer-mit-b0/small/config.py b/ChangeFormer-mit-b0/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..9c0c34c59c855b011b236c36aba51c91af6c88d2 --- /dev/null +++ b/ChangeFormer-mit-b0/small/config.py @@ -0,0 +1,54 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changeformer_mit-b0.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_small_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict(pretrained=checkpoint, decode_head=dict(num_classes=2)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.00006, betas=(0.9, 0.999), weight_decay=0.01) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer, + paramwise_cfg=dict( + custom_keys={ + 'pos_block': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.), + 'head': dict(lr_mult=10.) + })) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] + +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +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=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeFormer-mit-b1/distill/best_mIoU_iter_14000.pth b/ChangeFormer-mit-b1/distill/best_mIoU_iter_14000.pth new file mode 100644 index 0000000000000000000000000000000000000000..07b458e6b93b7c0ba36b4a1af0954d418fff16cd --- /dev/null +++ b/ChangeFormer-mit-b1/distill/best_mIoU_iter_14000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07566c70fd55e60175882367c65c3ad4580daeea297a46ddc36723d8d8e18b76 +size 225546369 diff --git a/ChangeFormer-mit-b1/distill/config.py b/ChangeFormer-mit-b1/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..f7b72086212a4b95ef557ea87ed955df45937ac9 --- /dev/null +++ b/ChangeFormer-mit-b1/distill/config.py @@ -0,0 +1,49 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/ChangeFormer-mit-b0/distill/distill-changeformer_mit-b0_512x512_200k_cgwx.py'] + +checkpoint_student = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeFormer-mit-b1/teacher_ckpt/initial/best_mIoU_iter_25000.pth' +checkpoint_teacher_l = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeFormer-mit-b1/teacher_ckpt/large/best_mIoU_iter_34000.pth' +checkpoint_teacher_m = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeFormer-mit-b1/teacher_ckpt/medium/best_mIoU_iter_9000.pth' +checkpoint_teacher_s = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeFormer-mit-b1/teacher_ckpt/small/best_mIoU_iter_50000.pth' + +# model settings +model = dict( + # student + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s), + + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[2, 2, 2, 2]), + + decode_head=dict(in_channels=[v * 2 for v in [64, 128, 320, 512]])) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] + +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +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=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeFormer-mit-b1/initial/best_mIoU_iter_25000.pth b/ChangeFormer-mit-b1/initial/best_mIoU_iter_25000.pth new file mode 100644 index 0000000000000000000000000000000000000000..df1fa435075f5a374a5a3af33310f41d16295247 --- /dev/null +++ b/ChangeFormer-mit-b1/initial/best_mIoU_iter_25000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfd8cbc118d02b3d4b7c4344cf746cf2cdf453a11ddb80f9c766a515b4b40aa8 +size 59104129 diff --git a/ChangeFormer-mit-b1/initial/config.py b/ChangeFormer-mit-b1/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..38eaa6ee43329d1535f3590097e1de6d70352111 --- /dev/null +++ b/ChangeFormer-mit-b1/initial/config.py @@ -0,0 +1,10 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/ChangeFormer-mit-b0/initial/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b1_20220624-02e5a6a1.pth' # noqa + +# model settings +model = dict( + pretrained=checkpoint, + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[2, 2, 2, 2]), + decode_head=dict(in_channels=[v * 2 for v in [64, 128, 320, 512]])) \ No newline at end of file diff --git a/ChangeFormer-mit-b1/large/best_mIoU_iter_34000.pth b/ChangeFormer-mit-b1/large/best_mIoU_iter_34000.pth new file mode 100644 index 0000000000000000000000000000000000000000..984365b3398e9444df3583f1bd32fe4c0d1389c3 --- /dev/null +++ b/ChangeFormer-mit-b1/large/best_mIoU_iter_34000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67b61e649258daaaf42c7ba8640ab3f3dd81c6e6e2f354a4a1d38c0a6ef0bdde +size 60271361 diff --git a/ChangeFormer-mit-b1/large/config.py b/ChangeFormer-mit-b1/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..6aa4a160c0658481c01491ade2a2c05e7441487a --- /dev/null +++ b/ChangeFormer-mit-b1/large/config.py @@ -0,0 +1,10 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/ChangeFormer-mit-b0/large/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b1_20220624-02e5a6a1.pth' # noqa + +# model settings +model = dict( + pretrained=checkpoint, + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[2, 2, 2, 2]), + decode_head=dict(in_channels=[v * 2 for v in [64, 128, 320, 512]])) \ No newline at end of file diff --git a/ChangeFormer-mit-b1/medium/best_mIoU_iter_9000.pth b/ChangeFormer-mit-b1/medium/best_mIoU_iter_9000.pth new file mode 100644 index 0000000000000000000000000000000000000000..2466883266d1c365b9f8f114f743547060622e34 --- /dev/null +++ b/ChangeFormer-mit-b1/medium/best_mIoU_iter_9000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5727c4aa97434e90902b9608b54163b230541ee375735dc9e6d77fc6f33d1cb3 +size 57034753 diff --git a/ChangeFormer-mit-b1/medium/config.py b/ChangeFormer-mit-b1/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..f5e990cf80b5b0a598fb3e2ad2792a3a617f97ce --- /dev/null +++ b/ChangeFormer-mit-b1/medium/config.py @@ -0,0 +1,10 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/ChangeFormer-mit-b0/medium/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b1_20220624-02e5a6a1.pth' # noqa + +# model settings +model = dict( + pretrained=checkpoint, + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[2, 2, 2, 2]), + decode_head=dict(in_channels=[v * 2 for v in [64, 128, 320, 512]])) \ No newline at end of file diff --git a/ChangeFormer-mit-b1/small/best_mIoU_iter_50000.pth b/ChangeFormer-mit-b1/small/best_mIoU_iter_50000.pth new file mode 100644 index 0000000000000000000000000000000000000000..d546a74040a36883fd05d9691dca325c990c9515 --- /dev/null +++ b/ChangeFormer-mit-b1/small/best_mIoU_iter_50000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dbf9a2ab56d582c876b90b54c9573ca56f119920cbe651664d83620b5331fc2 +size 62418945 diff --git a/ChangeFormer-mit-b1/small/config.py b/ChangeFormer-mit-b1/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..101bcd7f93e662d8d14e8784d112da6d971e4944 --- /dev/null +++ b/ChangeFormer-mit-b1/small/config.py @@ -0,0 +1,10 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/ChangeFormer-mit-b0/small/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b1_20220624-02e5a6a1.pth' # noqa + +# model settings +model = dict( + pretrained=checkpoint, + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[2, 2, 2, 2]), + decode_head=dict(in_channels=[v * 2 for v in [64, 128, 320, 512]])) \ No newline at end of file diff --git a/ChangeStar-farseg/distill/best_mIoU_iter_4000.pth b/ChangeStar-farseg/distill/best_mIoU_iter_4000.pth new file mode 100644 index 0000000000000000000000000000000000000000..4a2011f5ff1657e47e645ebc4338a46881f7f2c4 --- /dev/null +++ b/ChangeStar-farseg/distill/best_mIoU_iter_4000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dda41939f75a1f8206eb32280b317b45d8e08ee1d3f8a1052eec82ae0c7fb613 +size 272943101 diff --git a/ChangeStar-farseg/distill/config.py b/ChangeStar-farseg/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..b734b87ceced151bd2e0c984bd2bf7101c76448b --- /dev/null +++ b/ChangeStar-farseg/distill/config.py @@ -0,0 +1,56 @@ +_base_ = [ + '/home/liuziyuan/proj/rmcd-kd/configs/_base_/models/KD-changestar_farseg_1x96_r18.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/standard_512x512_200k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint_student = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeStar/teacher_ckpt/initial/best_mIoU_iter_70000.pth' +checkpoint_teacher_l = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeStar/teacher_ckpt/large/best_mIoU_iter_14000.pth' +checkpoint_teacher_m = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeStar/teacher_ckpt/medium/best_mIoU_iter_13000.pth' +checkpoint_teacher_s = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeStar/teacher_ckpt/small/best_mIoU_iter_88000.pth' + +train_dataloader = dict(batch_size=16, num_workers=8) + +model = dict( + # student + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s), +) + +optimizer=dict( + type='AdamW', lr=0.001, betas=(0.9, 0.999), weight_decay=0.01) +optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeStar-farseg/initial/best_mIoU_iter_70000.pth b/ChangeStar-farseg/initial/best_mIoU_iter_70000.pth new file mode 100644 index 0000000000000000000000000000000000000000..a5dcf0e23611c684575ca4bfc7207614e3f55454 --- /dev/null +++ b/ChangeStar-farseg/initial/best_mIoU_iter_70000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8691c8f924ea053b4d257ba339073851c06d741658b06209c12d340ae76518cd +size 80860211 diff --git a/ChangeStar-farseg/initial/config.py b/ChangeStar-farseg/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..49c2cac9a30037374c5d779296cf80b48de88bf2 --- /dev/null +++ b/ChangeStar-farseg/initial/config.py @@ -0,0 +1,36 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changestar_farseg_1x96_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/standard_512x512_200k_cgwx.py'] + + +train_dataloader = dict(batch_size=16, num_workers=8) + +optimizer=dict( + type='AdamW', lr=0.001, betas=(0.9, 0.999), weight_decay=0.01) +optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeStar-farseg/large/best_mIoU_iter_14000.pth b/ChangeStar-farseg/large/best_mIoU_iter_14000.pth new file mode 100644 index 0000000000000000000000000000000000000000..6c913ff36bc51fd209687147fdffaf4f8f273e39 --- /dev/null +++ b/ChangeStar-farseg/large/best_mIoU_iter_14000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d75ce56c5979a675c5b9d81c20a7a912e479d9aa2a91eb53dfb626d0b8fc8bd1 +size 70604147 diff --git a/ChangeStar-farseg/large/config.py b/ChangeStar-farseg/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..52b6aeaa400057f4f4b1aea3f0adbac605597340 --- /dev/null +++ b/ChangeStar-farseg/large/config.py @@ -0,0 +1,36 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changestar_farseg_1x96_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_large_512x512_100k_cgwx.py'] + + +train_dataloader = dict(batch_size=16, num_workers=8) + +optimizer=dict( + type='AdamW', lr=0.001, betas=(0.9, 0.999), weight_decay=0.01) +optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeStar-farseg/medium/best_mIoU_iter_13000.pth b/ChangeStar-farseg/medium/best_mIoU_iter_13000.pth new file mode 100644 index 0000000000000000000000000000000000000000..dc60386f9a41fe63b903c2e68c23c7960ece1009 --- /dev/null +++ b/ChangeStar-farseg/medium/best_mIoU_iter_13000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc2e08869404e851b2b28af2d43b0c856127984e2c5769284e0ae39f694420e4 +size 70425011 diff --git a/ChangeStar-farseg/medium/config.py b/ChangeStar-farseg/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..29c92ad1e87be2de1f600add769e77220bed77c0 --- /dev/null +++ b/ChangeStar-farseg/medium/config.py @@ -0,0 +1,36 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changestar_farseg_1x96_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_medium_512x512_100k_cgwx.py'] + + +train_dataloader = dict(batch_size=16, num_workers=8) + +optimizer=dict( + type='AdamW', lr=0.001, betas=(0.9, 0.999), weight_decay=0.01) +optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeStar-farseg/small/best_mIoU_iter_88000.pth b/ChangeStar-farseg/small/best_mIoU_iter_88000.pth new file mode 100644 index 0000000000000000000000000000000000000000..2bc503c4fa4e9580a07283f6bb279a9da7b4fb9f --- /dev/null +++ b/ChangeStar-farseg/small/best_mIoU_iter_88000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a7e6513df409aec48973517ef097525c3c257e9c8858ed2ffe17fa3cfe065ce +size 84213427 diff --git a/ChangeStar-farseg/small/config.py b/ChangeStar-farseg/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..12f031168636c2a9a337fc30e826eaf0e75e7065 --- /dev/null +++ b/ChangeStar-farseg/small/config.py @@ -0,0 +1,36 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changestar_farseg_1x96_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_small_512x512_100k_cgwx.py'] + + +train_dataloader = dict(batch_size=16, num_workers=8) + +optimizer=dict( + type='AdamW', lr=0.001, betas=(0.9, 0.999), weight_decay=0.01) +optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeStar-upernet/distill/best_mIoU_iter_13000.pth b/ChangeStar-upernet/distill/best_mIoU_iter_13000.pth new file mode 100644 index 0000000000000000000000000000000000000000..fd7077fdbbd130a66fb8f0662a0090ce8100aeff --- /dev/null +++ b/ChangeStar-upernet/distill/best_mIoU_iter_13000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0047a69f05da8360c74bec02ffc17f0c2f10647b9c2faa7bff3157e4fba0d8e +size 225938393 diff --git a/ChangeStar-upernet/distill/config.py b/ChangeStar-upernet/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..8d7fa6adadbfddcb72f579c377f1ea78c67275c1 --- /dev/null +++ b/ChangeStar-upernet/distill/config.py @@ -0,0 +1,52 @@ +_base_ = [ + '/home/liuziyuan/proj/rmcd-kd/configs/_base_/models/KD-changestar_upernet_1x96_r18.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/standard_512x512_200k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint_student = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints/ChangeStar/upernet/best_mIoU_iter_120000.pth' +checkpoint_teacher_l = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeStar-upernet/teacher_ckpt/large/best_mIoU_iter_12000.pth' +checkpoint_teacher_m = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeStar-upernet/teacher_ckpt/medium/best_mIoU_iter_17000.pth' +checkpoint_teacher_s = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/ChangeStar-upernet/teacher_ckpt/small/best_mIoU_iter_79000.pth' + +model = dict( + # student + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s), +) + + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] + +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeStar-upernet/initial/best_mIoU_iter_120000.pth b/ChangeStar-upernet/initial/best_mIoU_iter_120000.pth new file mode 100644 index 0000000000000000000000000000000000000000..60ca318d8920901038a672722f910d96f69c3a1a --- /dev/null +++ b/ChangeStar-upernet/initial/best_mIoU_iter_120000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c658e2baffc1d3c6a45f856ded45706d74af0673414a21634f3c35effbb7e90 +size 73485463 diff --git a/ChangeStar-upernet/initial/config.py b/ChangeStar-upernet/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..7e018e4366a763ae9657b0aaffe36f093e728da9 --- /dev/null +++ b/ChangeStar-upernet/initial/config.py @@ -0,0 +1,3 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changestar_upernet_1x96_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/standard_512x512_200k_cgwx.py'] diff --git a/ChangeStar-upernet/large/best_mIoU_iter_12000.pth b/ChangeStar-upernet/large/best_mIoU_iter_12000.pth new file mode 100644 index 0000000000000000000000000000000000000000..05fe6de36132cc5b25f7fe0522a03ea339257a4a --- /dev/null +++ b/ChangeStar-upernet/large/best_mIoU_iter_12000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a54be525aa3b6dc344dd1e5cdaf9046358322f3d441fcbe240fb6b900c322a3f +size 57706839 diff --git a/ChangeStar-upernet/large/config.py b/ChangeStar-upernet/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..a97945cd91d17f1340c268a9a72b95dfb40ddb41 --- /dev/null +++ b/ChangeStar-upernet/large/config.py @@ -0,0 +1,30 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changestar_upernet_1x96_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_large_512x512_100k_cgwx.py'] + + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeStar-upernet/medium/best_mIoU_iter_17000.pth b/ChangeStar-upernet/medium/best_mIoU_iter_17000.pth new file mode 100644 index 0000000000000000000000000000000000000000..989a572c69c379eb627e794843751c8c79c0b513 --- /dev/null +++ b/ChangeStar-upernet/medium/best_mIoU_iter_17000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:552091db173cd761835feb068369eb600b60551cfce17583c198d05792bc8e90 +size 58445015 diff --git a/ChangeStar-upernet/medium/config.py b/ChangeStar-upernet/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..1059ecf50045a30c3f852024729ad834ecb3f686 --- /dev/null +++ b/ChangeStar-upernet/medium/config.py @@ -0,0 +1,30 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changestar_upernet_1x96_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_medium_512x512_100k_cgwx.py'] + + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/ChangeStar-upernet/small/best_mIoU_iter_79000.pth b/ChangeStar-upernet/small/best_mIoU_iter_79000.pth new file mode 100644 index 0000000000000000000000000000000000000000..5adfe68525aee9a5f3c3182590f6252ba5e91ae8 --- /dev/null +++ b/ChangeStar-upernet/small/best_mIoU_iter_79000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:420d0a6907ffb35a6045aed61d740bdabab73ef24ed3d9139592ed2c2df23996 +size 67592599 diff --git a/ChangeStar-upernet/small/config.py b/ChangeStar-upernet/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..81f13d49782416006d3b8e0a2767599c3f898686 --- /dev/null +++ b/ChangeStar-upernet/small/config.py @@ -0,0 +1,30 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changestar_upernet_1x96_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_small_512x512_100k_cgwx.py'] + + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-mit-b0/distill/best_mIoU_iter_47000.pth b/Changer-mit-b0/distill/best_mIoU_iter_47000.pth new file mode 100644 index 0000000000000000000000000000000000000000..9b96010a9c48bc0422fcf6665d99ccc44aa31008 --- /dev/null +++ b/Changer-mit-b0/distill/best_mIoU_iter_47000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60f5d694714983a8556318bd70e33824db43f9b629a326bef2cbd1f379a76a04 +size 62722425 diff --git a/Changer-mit-b0/distill/config.py b/Changer-mit-b0/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..c12605db6b475c71fac3d5e1d4babd3600a18a24 --- /dev/null +++ b/Changer-mit-b0/distill/config.py @@ -0,0 +1,101 @@ +_base_ = [ + '/home/liuziyuan/proj/rmcd-kd/configs/_base_/models/KD-changer_mit-b0.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/standard_512x512_200k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + + +# checkpoint_student = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa +checkpoint_student = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-mit-b0/teacher_ckpt/initial/best_mIoU_iter_55000.pth' +checkpoint_teacher_l = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-mit-b0/teacher_ckpt/large/best_mIoU_iter_40000.pth' +checkpoint_teacher_m = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-mit-b0/teacher_ckpt/medium/best_mIoU_iter_97500.pth' +checkpoint_teacher_s = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-mit-b0/teacher_ckpt/small/best_mIoU_iter_67500.pth' + +model = dict( + # student + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s), + + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)), + + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.01) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer, + paramwise_cfg=dict( + custom_keys={ + 'pos_block': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.), + 'head': dict(lr_mult=10.) + })) + + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] + +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +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=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-mit-b0/initial/best_mIoU_iter_55000.pth b/Changer-mit-b0/initial/best_mIoU_iter_55000.pth new file mode 100644 index 0000000000000000000000000000000000000000..2a01fa7a98204cf95a03f77e4d1251084ce2a2b5 --- /dev/null +++ b/Changer-mit-b0/initial/best_mIoU_iter_55000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3aa27da4484500a690690fc4531f5c94454838a850523eacab1c7ad036fcb9a6 +size 21073071 diff --git a/Changer-mit-b0/initial/config.py b/Changer-mit-b0/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..f5b3098a1c1ac1310a8e0683222170d04813355e --- /dev/null +++ b/Changer-mit-b0/initial/config.py @@ -0,0 +1,94 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changer_mit-b0.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/standard_512x512_200k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict( + pretrained=checkpoint, + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + +test_pipeline = [ + dict(type='MultiImgLoadImageFromFile'), + dict(type='MultiImgResize', scale=(512, 512), keep_ratio=True), + # add loading annotation after ``Resize`` because ground truth + # does not need to do resize data transform + dict(type='MultiImgLoadAnnotations'), + dict(type='MultiImgPackSegInputs') +] + + +# optimizer +optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.01) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer, + paramwise_cfg=dict( + custom_keys={ + 'pos_block': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.), + 'head': dict(lr_mult=10.) + })) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +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=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-mit-b0/large/best_mIoU_iter_40000.pth b/Changer-mit-b0/large/best_mIoU_iter_40000.pth new file mode 100644 index 0000000000000000000000000000000000000000..52b729c85fd8c473efa99f4e20d5c5b38c10faae --- /dev/null +++ b/Changer-mit-b0/large/best_mIoU_iter_40000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80dbae156ebe39d4880ba21feef5b0caa2b580a7fe25e9025e644e49a987fc1c +size 19084143 diff --git a/Changer-mit-b0/large/config.py b/Changer-mit-b0/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..ba3045982cabe54bfef5598fe864d5bc0c442e80 --- /dev/null +++ b/Changer-mit-b0/large/config.py @@ -0,0 +1,84 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changer_mit-b0.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/train_large_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict( + pretrained=checkpoint, + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.01) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer, + paramwise_cfg=dict( + custom_keys={ + 'pos_block': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.), + 'head': dict(lr_mult=10.) + })) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +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=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-mit-b0/medium/best_mIoU_iter_97500.pth b/Changer-mit-b0/medium/best_mIoU_iter_97500.pth new file mode 100644 index 0000000000000000000000000000000000000000..9ac87289bae8034bf92a523ede77e1102ab35cc7 --- /dev/null +++ b/Changer-mit-b0/medium/best_mIoU_iter_97500.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c0e25c1d1f1d36306bce8f6136f8580f085202e4e880067fa2ca270559b0347 +size 26545967 diff --git a/Changer-mit-b0/medium/config.py b/Changer-mit-b0/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..175e8dd4470b02f152b7851f9e32090eb2ef9ddc --- /dev/null +++ b/Changer-mit-b0/medium/config.py @@ -0,0 +1,85 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changer_mit-b0.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/train_medium_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict( + pretrained=checkpoint, + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + + +# optimizer +optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.01) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer, + paramwise_cfg=dict( + custom_keys={ + 'pos_block': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.), + 'head': dict(lr_mult=10.) + })) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=2500) +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=2500, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-mit-b0/small/best_mIoU_iter_67500.pth b/Changer-mit-b0/small/best_mIoU_iter_67500.pth new file mode 100644 index 0000000000000000000000000000000000000000..3abeca62b55a6c178768ca765c79dc6d698d9576 --- /dev/null +++ b/Changer-mit-b0/small/best_mIoU_iter_67500.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3042433abec311cd2e410dab228cc261053d007cb2f162bdefd8547ae50d754d +size 22683055 diff --git a/Changer-mit-b0/small/config.py b/Changer-mit-b0/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..605d324fd5899b35048d23afb0897fe25a4677f4 --- /dev/null +++ b/Changer-mit-b0/small/config.py @@ -0,0 +1,85 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changer_mit-b0.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/train_small_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b0_20220624-7e0fe6dd.pth' # noqa + +model = dict( + pretrained=checkpoint, + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + + +# optimizer +optimizer=dict( + type='AdamW', lr=0.0001, betas=(0.9, 0.999), weight_decay=0.01) + +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer, + paramwise_cfg=dict( + custom_keys={ + 'pos_block': dict(decay_mult=0.), + 'norm': dict(decay_mult=0.), + 'head': dict(lr_mult=10.) + })) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=2500) +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=2500, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-mit-b1/distill/best_mIoU_iter_6000.pth b/Changer-mit-b1/distill/best_mIoU_iter_6000.pth new file mode 100644 index 0000000000000000000000000000000000000000..d6dc50f098c443d1ee07f0337f8cf0abbe8ef7e4 --- /dev/null +++ b/Changer-mit-b1/distill/best_mIoU_iter_6000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c97c3b03f4893a7c92ba41f441888741d136b25aa392fa23e56bfeb2ff3188a1 +size 214943801 diff --git a/Changer-mit-b1/distill/config.py b/Changer-mit-b1/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..5767c659917721b4dee0dc81a7a4783137f07847 --- /dev/null +++ b/Changer-mit-b1/distill/config.py @@ -0,0 +1,23 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/Changer-mit-b0/distill/config.py'] + +# checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b1_20220624-02e5a6a1.pth' # noqa +checkpoint_student = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-mit-b1/teacher_ckpt/initial/best_mIoU_iter_230000.pth' +checkpoint_teacher_l = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-mit-b1/teacher_ckpt/large/best_mIoU_iter_57500.pth' +checkpoint_teacher_m = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-mit-b1/teacher_ckpt/medium/best_mIoU_iter_22500.pth' +checkpoint_teacher_s = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-mit-b1/teacher_ckpt/small/best_mIoU_iter_130000.pth' + +# model settings +model = dict( + # pretrained=checkpoint, + + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s), + + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[2, 2, 2, 2]), + decode_head=dict(in_channels=[64, 128, 320, 512])) \ No newline at end of file diff --git a/Changer-mit-b1/initial/best_mIoU_iter_80000.pth b/Changer-mit-b1/initial/best_mIoU_iter_80000.pth new file mode 100644 index 0000000000000000000000000000000000000000..74b36f30241111e5cf55813ea6097c5c10a08136 --- /dev/null +++ b/Changer-mit-b1/initial/best_mIoU_iter_80000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea4e871ccdce236b2a2e8f84f9ba21d8809a78177915c4577317f2b52a787638 +size 63919983 diff --git a/Changer-mit-b1/initial/config.py b/Changer-mit-b1/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..868677d6594f0063045c7f82d13fdeb88027c581 --- /dev/null +++ b/Changer-mit-b1/initial/config.py @@ -0,0 +1,10 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/Changer-mit-b0/initial/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b1_20220624-02e5a6a1.pth' # noqa + +# model settings +model = dict( + pretrained=checkpoint, + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[2, 2, 2, 2]), + decode_head=dict(in_channels=[64, 128, 320, 512])) \ No newline at end of file diff --git a/Changer-mit-b1/large/best_mIoU_iter_57500.pth b/Changer-mit-b1/large/best_mIoU_iter_57500.pth new file mode 100644 index 0000000000000000000000000000000000000000..003bce0a2acbd54f7b7e0ac4fc40590129966a69 --- /dev/null +++ b/Changer-mit-b1/large/best_mIoU_iter_57500.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23761e060eb9269544a171e97735ffc573646a66ffb150cdcee6099418613b61 +size 60948207 diff --git a/Changer-mit-b1/large/config.py b/Changer-mit-b1/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..6185ee224d674ae7b635141aab2310f0a9b097fb --- /dev/null +++ b/Changer-mit-b1/large/config.py @@ -0,0 +1,10 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/Changer-mit-b0/large/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b1_20220624-02e5a6a1.pth' # noqa + +# model settings +model = dict( + pretrained=checkpoint, + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[2, 2, 2, 2]), + decode_head=dict(in_channels=[64, 128, 320, 512])) \ No newline at end of file diff --git a/Changer-mit-b1/medium/best_mIoU_iter_22500.pth b/Changer-mit-b1/medium/best_mIoU_iter_22500.pth new file mode 100644 index 0000000000000000000000000000000000000000..9bf39ff86fa454be254c9bc59d1552169a85a351 --- /dev/null +++ b/Changer-mit-b1/medium/best_mIoU_iter_22500.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e30d1d7004aec46591d3d2954e5a7c31fdfc0bc7c6c91dee138495bbb99bb240 +size 56432495 diff --git a/Changer-mit-b1/medium/config.py b/Changer-mit-b1/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..469ca1063cb230d565e22ed8ffd98703601a9094 --- /dev/null +++ b/Changer-mit-b1/medium/config.py @@ -0,0 +1,10 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/Changer-mit-b0/medium/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b1_20220624-02e5a6a1.pth' # noqa + +# model settings +model = dict( + pretrained=checkpoint, + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[2, 2, 2, 2]), + decode_head=dict(in_channels=[64, 128, 320, 512])) \ No newline at end of file diff --git a/Changer-mit-b1/small/best_mIoU_iter_130000.pth b/Changer-mit-b1/small/best_mIoU_iter_130000.pth new file mode 100644 index 0000000000000000000000000000000000000000..57f1970aab24cbc52b04b17c281d8ad5f2032ae8 --- /dev/null +++ b/Changer-mit-b1/small/best_mIoU_iter_130000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:393d6e92303782ecc5063b2ec69856ff06d8aa74d1a288eb98ee84df8420275f +size 70236847 diff --git a/Changer-mit-b1/small/config.py b/Changer-mit-b1/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..9b17d37e3aed65e990d002da0e9fe11feb641242 --- /dev/null +++ b/Changer-mit-b1/small/config.py @@ -0,0 +1,10 @@ +_base_ = ['/nas/datasets/lzy/RS-ChangeDetection/Best_ckpt-KD/Changer-mit-b0/small/config.py'] + +checkpoint = 'https://download.openmmlab.com/mmsegmentation/v0.5/pretrain/segformer/mit_b1_20220624-02e5a6a1.pth' # noqa + +# model settings +model = dict( + pretrained=checkpoint, + backbone=dict( + embed_dims=64, num_heads=[1, 2, 5, 8], num_layers=[2, 2, 2, 2]), + decode_head=dict(in_channels=[64, 128, 320, 512])) \ No newline at end of file diff --git a/Changer-r18/distill/best_mIoU_iter_96000.pth b/Changer-r18/distill/best_mIoU_iter_96000.pth new file mode 100644 index 0000000000000000000000000000000000000000..8b6f2743de50c4efb6aadedece0feac5c39cda6d --- /dev/null +++ b/Changer-r18/distill/best_mIoU_iter_96000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65a5caf742c7a66c3f6088c5e416e9a479297256b8c530e206e5237ef8d1785d +size 286408937 diff --git a/Changer-r18/distill/config.py b/Changer-r18/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..0530ea1d16c2775c324c645c99360efccbeed621 --- /dev/null +++ b/Changer-r18/distill/config.py @@ -0,0 +1,91 @@ +_base_ = [ + '/home/liuziyuan/proj/rmcd-kd/configs/_base_/models/KD-changer_r18.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/standard_512x512_200k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint_student = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-r18/teacher_ckpt/initial/best_mIoU_iter_185000.pth' +checkpoint_teacher_l = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-r18/teacher_ckpt/large/best_mIoU_iter_166000.pth' +checkpoint_teacher_m = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-r18/teacher_ckpt/medium/best_mIoU_iter_128000.pth' +checkpoint_teacher_s = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-r18/teacher_ckpt/small/best_mIoU_iter_138000.pth' + + +model = dict( + # student + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s), + + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.005, betas=(0.9, 0.999), weight_decay=0.05) +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] + +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-r18/initial/best_mIoU_iter_185000.pth b/Changer-r18/initial/best_mIoU_iter_185000.pth new file mode 100644 index 0000000000000000000000000000000000000000..b754f7f01caabac201274f7839b93590ba173678 --- /dev/null +++ b/Changer-r18/initial/best_mIoU_iter_185000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35bccedce39bc0cfcd37bc7181db94e510f4420854994c30ac98ce233a6e28ba +size 66081063 diff --git a/Changer-r18/initial/config.py b/Changer-r18/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..ae57c0ff01b6071028a9b51d5b743d1fb59dd27b --- /dev/null +++ b/Changer-r18/initial/config.py @@ -0,0 +1,47 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changer_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/standard_512x512_200k_cgwx.py'] + +crop_size = (512, 512) + +model = dict( + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.005, betas=(0.9, 0.999), weight_decay=0.05) +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + +# compile = True # use PyTorch 2.x \ No newline at end of file diff --git a/Changer-r18/large/best_mIoU_iter_166000.pth b/Changer-r18/large/best_mIoU_iter_166000.pth new file mode 100644 index 0000000000000000000000000000000000000000..2aa9dd803836362bad503472f857cbfff82f56ce --- /dev/null +++ b/Changer-r18/large/best_mIoU_iter_166000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80d1d759bb5ffe2286ebd0ac101066e18c18d456c48cea61b37725ecf2159b90 +size 63951847 diff --git a/Changer-r18/large/config.py b/Changer-r18/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..f00b46d76ab7dba0cdeab4e64aa63d2563a6bc70 --- /dev/null +++ b/Changer-r18/large/config.py @@ -0,0 +1,74 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changer_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_large_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +model = dict( + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.005, betas=(0.9, 0.999), weight_decay=0.05) +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-r18/medium/best_mIoU_iter_128000.pth b/Changer-r18/medium/best_mIoU_iter_128000.pth new file mode 100644 index 0000000000000000000000000000000000000000..dbe3d391cd317f4a3fd7cb333774f25c72b1db2d --- /dev/null +++ b/Changer-r18/medium/best_mIoU_iter_128000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:572f2ce8b116d0251bf12bb138b060ca645e51c2cad65269791fbe4de3a64f45 +size 59805031 diff --git a/Changer-r18/medium/config.py b/Changer-r18/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..4384e18cbee27b58843bab4afd3ea21829b4f6ff --- /dev/null +++ b/Changer-r18/medium/config.py @@ -0,0 +1,74 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changer_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_medium_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +model = dict( + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.005, betas=(0.9, 0.999), weight_decay=0.05) +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-r18/small/best_mIoU_iter_138000.pth b/Changer-r18/small/best_mIoU_iter_138000.pth new file mode 100644 index 0000000000000000000000000000000000000000..b7d2c6936a1b4d690d37c977ee0d470c89ea6cae --- /dev/null +++ b/Changer-r18/small/best_mIoU_iter_138000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b33bc3a39244a4d323d7dafe45ebfc4026a8b87aa903338e3e147d1eef3bbb11 +size 61136679 diff --git a/Changer-r18/small/config.py b/Changer-r18/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..9cbadb795f387574a6b94e5fd689dac7056a1ed2 --- /dev/null +++ b/Changer-r18/small/config.py @@ -0,0 +1,74 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changer_r18.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_small_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +model = dict( + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.005, betas=(0.9, 0.999), weight_decay=0.05) +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-s50/distill/best_mIoU_iter_97000.pth b/Changer-s50/distill/best_mIoU_iter_97000.pth new file mode 100644 index 0000000000000000000000000000000000000000..9b0ff83f4089c0bf29d83af617b05f4e4e1ff041 --- /dev/null +++ b/Changer-s50/distill/best_mIoU_iter_97000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3116e5824afa3b38c5669fea00997f17050b58af0c73c08c32e843c8c110bfee +size 441617037 diff --git a/Changer-s50/distill/config.py b/Changer-s50/distill/config.py new file mode 100644 index 0000000000000000000000000000000000000000..4c9f2b078a1a020b6384658d7bfe36cf6d0288c4 --- /dev/null +++ b/Changer-s50/distill/config.py @@ -0,0 +1,88 @@ +_base_ = [ + '/home/liuziyuan/proj/rmcd-kd/configs/_base_/models/KD-changer_s50.py', + '/home/liuziyuan/proj/rmcd-kd/configs/common/standard_512x512_200k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +checkpoint_student = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-s50/teacher_ckpt/initial/best_mIoU_iter_130000.pth' +checkpoint_teacher_l = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-s50/teacher_ckpt/large/best_mIoU_iter_124000.pth' +checkpoint_teacher_m = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-s50/teacher_ckpt/medium/best_mIoU_iter_75000.pth' +checkpoint_teacher_s = '/nas/datasets/lzy/RS-ChangeDetection/checkpoints_distill/Changer-s50/teacher_ckpt/small/best_mIoU_iter_175000.pth' + +model = dict( + # student + init_cfg=dict(type='Pretrained', checkpoint=checkpoint_student), + # teacher large + init_cfg_t_l = dict(type='Pretrained', checkpoint=checkpoint_teacher_l), + # teacher medium + init_cfg_t_m = dict(type='Pretrained', checkpoint=checkpoint_teacher_m), + # teacher small + init_cfg_t_s = dict(type='Pretrained', checkpoint=checkpoint_teacher_s), + + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + + +# optimizer +optimizer=dict( + type='AdamW', lr=0.005, betas=(0.9, 0.999), weight_decay=0.05) +optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer) + + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=100000, + eta_min=0.0, + by_epoch=False, + ) +] + +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=100000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-s50/initial/best_mIoU_iter_130000.pth b/Changer-s50/initial/best_mIoU_iter_130000.pth new file mode 100644 index 0000000000000000000000000000000000000000..620611369e9ec61aaf63dd33053cbeb2037a16e9 --- /dev/null +++ b/Changer-s50/initial/best_mIoU_iter_130000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94e62c1bf92aa6d2c9dbae62222568d41d9758cc27e59b67c96c3c3d02b04a04 +size 121561147 diff --git a/Changer-s50/initial/config.py b/Changer-s50/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..bf76c5a60d5b6aea42f5e6d5944d7ff3376932ff --- /dev/null +++ b/Changer-s50/initial/config.py @@ -0,0 +1,43 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changer_s50.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/standard_512x512_200k_cgwx.py'] + +crop_size = (512, 512) +model = dict( + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.005, betas=(0.9, 0.999), weight_decay=0.05) +optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer) + +# compile = True # use PyTorch 2.x \ No newline at end of file diff --git a/Changer-s50/large/best_mIoU_iter_124000.pth b/Changer-s50/large/best_mIoU_iter_124000.pth new file mode 100644 index 0000000000000000000000000000000000000000..916c2c223a181ed8f103c270c53713f2bc4d86f0 --- /dev/null +++ b/Changer-s50/large/best_mIoU_iter_124000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aea995712bf8a572e97e0ca02b0b82ba615aa5eb3113121af779149d4acce4cf +size 120898875 diff --git a/Changer-s50/large/config.py b/Changer-s50/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..9c1f02c42ef6c4fa229faa33e80183945b3088ee --- /dev/null +++ b/Changer-s50/large/config.py @@ -0,0 +1,74 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changer_s50.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_large_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +model = dict( + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.005, betas=(0.9, 0.999), weight_decay=0.05) +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-s50/medium/best_mIoU_iter_75000.pth b/Changer-s50/medium/best_mIoU_iter_75000.pth new file mode 100644 index 0000000000000000000000000000000000000000..b42a9a355cffd5668cd821e29f9f78adda404539 --- /dev/null +++ b/Changer-s50/medium/best_mIoU_iter_75000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e3ae08644e1bfc2fcfbdb8bd3b340ad76c97e8d3572a350f4dd3143c2d25c3d +size 115498491 diff --git a/Changer-s50/medium/config.py b/Changer-s50/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..1f54c77d550d57096bae3fe1a57fc731dd693316 --- /dev/null +++ b/Changer-s50/medium/config.py @@ -0,0 +1,75 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changer_s50.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_medium_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +model = dict( + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + + +# optimizer +optimizer=dict( + type='AdamW', lr=0.005, betas=(0.9, 0.999), weight_decay=0.05) +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/Changer-s50/small/best_mIoU_iter_175000.pth b/Changer-s50/small/best_mIoU_iter_175000.pth new file mode 100644 index 0000000000000000000000000000000000000000..eac648697e131ea7b123cbe92754f9858e1f2392 --- /dev/null +++ b/Changer-s50/small/best_mIoU_iter_175000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cb296e187164d8837fd549a95b36d3497fc589ea500a001bddeb4dd5b7d5de7 +size 126827003 diff --git a/Changer-s50/small/config.py b/Changer-s50/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..75540e1924968e848e6a8dadd58b74044b025f99 --- /dev/null +++ b/Changer-s50/small/config.py @@ -0,0 +1,74 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/changer_s50.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_small_512x512_100k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) + +model = dict( + backbone=dict( + interaction_cfg=( + None, + dict(type='SpatialExchange', p=1/2), + dict(type='ChannelExchange', p=1/2), + dict(type='ChannelExchange', p=1/2)) + ), + decode_head=dict( + num_classes=2, + sampler=dict(type='mmseg.OHEMPixelSampler', thresh=0.7, min_kept=100000)), + # 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='MultiImgRandomRotFlip', rotate_prob=0.5, flip_prob=0.5, degree=(-20, 20)), + dict(type='MultiImgRandomCrop', crop_size=crop_size, cat_max_ratio=0.75), + dict(type='MultiImgExchangeTime', prob=0.5), + 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( + dataset=dict(pipeline=train_pipeline)) + +# optimizer +optimizer=dict( + type='AdamW', lr=0.005, betas=(0.9, 0.999), weight_decay=0.05) +optim_wrapper = dict( + _delete_=True, + type='OptimWrapper', + optimizer=optimizer) + +param_scheduler = [ + dict( + type='LinearLR', start_factor=1e-6, by_epoch=False, begin=0, end=1000), + dict( + type='PolyLR', + power=1.0, + begin=1000, + end=200000, + eta_min=0.0, + by_epoch=False, + ) +] +# training schedule for 100k +train_cfg = dict(type='IterBasedTrainLoop', max_iters=200000, val_interval=1000) +val_cfg = dict(type='ValLoop') +test_cfg = dict(type='TestLoop') +default_hooks = dict( + timer=dict(type='IterTimerHook'), + logger=dict(type='LoggerHook', interval=100, log_metric_by_epoch=False), + param_scheduler=dict(type='ParamSchedulerHook'), + checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=1000, + save_best='mIoU'), + sampler_seed=dict(type='DistSamplerSeedHook'), + visualization=dict(type='CDVisualizationHook', interval=1, + img_shape=(512, 512, 3))) \ No newline at end of file diff --git a/FC-EF/initial/best_mIoU_iter_170000.pth b/FC-EF/initial/best_mIoU_iter_170000.pth new file mode 100644 index 0000000000000000000000000000000000000000..e616f407dc0960c68a501dac205487e01134cd0b --- /dev/null +++ b/FC-EF/initial/best_mIoU_iter_170000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c7cddd68af416331572f71dfec5d001cda9b965167e4f62ce14b1d2a790b92b +size 24133663 diff --git a/FC-EF/initial/config.py b/FC-EF/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..c19f5ea8ff11c80e8c4487d7d2dc04719af4e0b2 --- /dev/null +++ b/FC-EF/initial/config.py @@ -0,0 +1,8 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/fc_ef.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/standard_512x512_200k_cgwx.py'] + +dataset_type = 'LEVIR_CD_Dataset' +data_root = '/nas/datasets/lzy/RS-ChangeDetection/CGWX' + +crop_size = (512, 512) diff --git a/FC-EF/large/best_mIoU_iter_170000.pth b/FC-EF/large/best_mIoU_iter_170000.pth new file mode 100644 index 0000000000000000000000000000000000000000..34c64cbe12feb2f19f49ad73fab66f5c925a1a2c --- /dev/null +++ b/FC-EF/large/best_mIoU_iter_170000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db763f16be9422dde322678e6be60e3de79136dd184374ce30352c0a44cbc256 +size 24136095 diff --git a/FC-EF/large/config.py b/FC-EF/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..7959e0f67bb41074b0a12745d24973ea97f8596d --- /dev/null +++ b/FC-EF/large/config.py @@ -0,0 +1,4 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/fc_ef.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_large_512x512_100k_cgwx.py'] + diff --git a/FC-EF/medium/best_mIoU_iter_71000.pth b/FC-EF/medium/best_mIoU_iter_71000.pth new file mode 100644 index 0000000000000000000000000000000000000000..713a7b11230e05735bf67cc0ccce4f338c2b6764 --- /dev/null +++ b/FC-EF/medium/best_mIoU_iter_71000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c51b0f19a78c326385931b596bd3dcdc35dbaa87e8a162cd4ee9b9ba27c2184 +size 13321951 diff --git a/FC-EF/medium/config.py b/FC-EF/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..88cc7a298f2db8184a8d22e7ac6c0cb127800137 --- /dev/null +++ b/FC-EF/medium/config.py @@ -0,0 +1,3 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/fc_ef.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_medium_512x512_100k_cgwx.py'] diff --git a/FC-EF/small/best_mIoU_iter_190000.pth b/FC-EF/small/best_mIoU_iter_190000.pth new file mode 100644 index 0000000000000000000000000000000000000000..091bf99ca4e75666c6bb3f5518113d018a562b73 --- /dev/null +++ b/FC-EF/small/best_mIoU_iter_190000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:652bc94d47e69dde04adc389c64b1b35cbda17201e14a983d733fc6d24305df2 +size 26419743 diff --git a/FC-EF/small/config.py b/FC-EF/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..bf77dec5ecfa14629365993a66cc1872445a742c --- /dev/null +++ b/FC-EF/small/config.py @@ -0,0 +1,4 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/fc_ef.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_small_512x512_100k_cgwx.py'] + diff --git a/FC-Siam-Conc/initial/best_mIoU_iter_200000.pth b/FC-Siam-Conc/initial/best_mIoU_iter_200000.pth new file mode 100644 index 0000000000000000000000000000000000000000..41185b56eb45ec432bd90f6dc03714fcf15b44a9 --- /dev/null +++ b/FC-Siam-Conc/initial/best_mIoU_iter_200000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4283efb1afd64d732c16ce81e79e206612208090e82b420f92a93daa3f2fa2f +size 28321055 diff --git a/FC-Siam-Conc/initial/config.py b/FC-Siam-Conc/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..ee17dbe39fc6e932a12988a3825d6e25866a6c29 --- /dev/null +++ b/FC-Siam-Conc/initial/config.py @@ -0,0 +1,4 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/fc_siam_conc.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/standard_512x512_200k_cgwx.py'] + diff --git a/FC-Siam-Conc/large/best_mIoU_iter_195000.pth b/FC-Siam-Conc/large/best_mIoU_iter_195000.pth new file mode 100644 index 0000000000000000000000000000000000000000..bc4af4a8547351a54fccadde3adc43d771ab7d06 --- /dev/null +++ b/FC-Siam-Conc/large/best_mIoU_iter_195000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:207ebd9830d21703038bdeef8be57d526c9f49e5dbf2a48e1e0a379de1a88881 +size 27754783 diff --git a/FC-Siam-Conc/large/config.py b/FC-Siam-Conc/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..2359c04b027e759a6df25a802ea6608e25864c88 --- /dev/null +++ b/FC-Siam-Conc/large/config.py @@ -0,0 +1,3 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/fc_siam_conc.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_large_512x512_100k_cgwx.py'] diff --git a/FC-Siam-Conc/medium/best_mIoU_iter_154000.pth b/FC-Siam-Conc/medium/best_mIoU_iter_154000.pth new file mode 100644 index 0000000000000000000000000000000000000000..be326dccb4c7a60005bf96735db8c38d9a28911c --- /dev/null +++ b/FC-Siam-Conc/medium/best_mIoU_iter_154000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f22e5959de309120b3bae3655c3b0fbe1f52b1f878c53ff18a163f10d19e33b +size 23287263 diff --git a/FC-Siam-Conc/medium/config.py b/FC-Siam-Conc/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..92028c84fa943c895450c3f0058b5892346acb7c --- /dev/null +++ b/FC-Siam-Conc/medium/config.py @@ -0,0 +1,3 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/fc_siam_conc.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_medium_512x512_100k_cgwx.py'] diff --git a/FC-Siam-Conc/small/best_mIoU_iter_156000.pth b/FC-Siam-Conc/small/best_mIoU_iter_156000.pth new file mode 100644 index 0000000000000000000000000000000000000000..384a45805fe0b5ad8f32f4504366cc2e44dba612 --- /dev/null +++ b/FC-Siam-Conc/small/best_mIoU_iter_156000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:983b29ffed0df7fc76148f3eb94d489eead7e76c42b3df874a736dc8b7fa4bfb +size 23694623 diff --git a/FC-Siam-Conc/small/config.py b/FC-Siam-Conc/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..ef1e24258f4acd3e3d4a83785b959272aacae49c --- /dev/null +++ b/FC-Siam-Conc/small/config.py @@ -0,0 +1,3 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/fc_siam_conc.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_small_512x512_100k_cgwx.py'] diff --git a/FC-Siam-Diff/initial/best_mIoU_iter_180000.pth b/FC-Siam-Diff/initial/best_mIoU_iter_180000.pth new file mode 100644 index 0000000000000000000000000000000000000000..70c90cef1289c2d26dbfadf1cd6c6a897aef5975 --- /dev/null +++ b/FC-Siam-Diff/initial/best_mIoU_iter_180000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c484d0f9b5319dffafbd0f91c98d4ee31d78097c70ac50db1bfd05c1946b287 +size 25291487 diff --git a/FC-Siam-Diff/initial/config.py b/FC-Siam-Diff/initial/config.py new file mode 100644 index 0000000000000000000000000000000000000000..58a91f22cda86671830c59c143e960e1f9e747d6 --- /dev/null +++ b/FC-Siam-Diff/initial/config.py @@ -0,0 +1,3 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/fc_siam_diff.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/standard_512x512_200k_cgwx.py'] diff --git a/FC-Siam-Diff/large/best_mIoU_iter_166000.pth b/FC-Siam-Diff/large/best_mIoU_iter_166000.pth new file mode 100644 index 0000000000000000000000000000000000000000..b3a046d5a8208c23ee84aac22425a02ec358782b --- /dev/null +++ b/FC-Siam-Diff/large/best_mIoU_iter_166000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4846075f2b0565d528edeac150e416f6dd1cb9b9775d04d87f0f9454ad1d8fa +size 23755167 diff --git a/FC-Siam-Diff/large/config.py b/FC-Siam-Diff/large/config.py new file mode 100644 index 0000000000000000000000000000000000000000..ef940506ba2ee8c05b83a7408f2089c77c686951 --- /dev/null +++ b/FC-Siam-Diff/large/config.py @@ -0,0 +1,3 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/fc_siam_diff.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_large_512x512_100k_cgwx.py'] diff --git a/FC-Siam-Diff/medium/best_mIoU_iter_9000.pth b/FC-Siam-Diff/medium/best_mIoU_iter_9000.pth new file mode 100644 index 0000000000000000000000000000000000000000..81a54de3d21c603b35c1bbd1da8ec3b4d30cb76c --- /dev/null +++ b/FC-Siam-Diff/medium/best_mIoU_iter_9000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:098ac6a455bdc71d62928c05f9616dedfecd4198e319f9822334e1155e37059f +size 6478047 diff --git a/FC-Siam-Diff/medium/config.py b/FC-Siam-Diff/medium/config.py new file mode 100644 index 0000000000000000000000000000000000000000..6e9cd17d337b14ca0e767cdc1682646e55b993d1 --- /dev/null +++ b/FC-Siam-Diff/medium/config.py @@ -0,0 +1,3 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/fc_siam_diff.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_medium_512x512_100k_cgwx.py'] diff --git a/FC-Siam-Diff/small/best_mIoU_iter_179000.pth b/FC-Siam-Diff/small/best_mIoU_iter_179000.pth new file mode 100644 index 0000000000000000000000000000000000000000..b2dcd44508d2ff01ea8d11e07416d2c3c34b2c7d --- /dev/null +++ b/FC-Siam-Diff/small/best_mIoU_iter_179000.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9218b08a934cc587071e2556dc4c995cbb36d9aecd6268dcb6391a122954cff3 +size 25443551 diff --git a/FC-Siam-Diff/small/config.py b/FC-Siam-Diff/small/config.py new file mode 100644 index 0000000000000000000000000000000000000000..1f966c2e368bed3e07febfcd9ccd9f8344413929 --- /dev/null +++ b/FC-Siam-Diff/small/config.py @@ -0,0 +1,3 @@ +_base_ = [ + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/_base_/models/fc_siam_diff.py', + '/home/liuziyuan/proj/RS-CD/rs-cd-cgwx/configs/common/train_small_512x512_100k_cgwx.py']