stereoid commited on
Commit
e5a55f8
·
verified ·
1 Parent(s): 8d4c62c

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. approach/ovod/APE/configs/ADE20kFull_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_clip_vlf_lsj1024.py +101 -0
  2. approach/ovod/APE/configs/ADE20kFull_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1024.py +32 -0
  3. approach/ovod/APE/configs/ADE20kFull_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_vlf_lsj1024.py +47 -0
  4. approach/ovod/APE/configs/ADE20k_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_clip_vlf_lsj1024.py +101 -0
  5. approach/ovod/APE/configs/ADE20k_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1024.py +22 -0
  6. approach/ovod/APE/configs/ADE20k_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_vlf_lsj1024.py +47 -0
  7. approach/ovod/APE/configs/ADE20k_SemanticSegmentation/deformable_deta/deformable_deta_segm_r50_160k.py +45 -0
  8. approach/ovod/APE/configs/BDD10k_PanopticSegmentation/ape_deta/ape_deta_vitl_eva02_clip_vlf_lsj1024.py +109 -0
  9. approach/ovod/APE/configs/BDD10k_PanopticSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1024.py +23 -0
  10. approach/ovod/APE/configs/BDD10k_PanopticSegmentation/ape_deta/ape_deta_vitl_eva02_vlf_lsj1024.py +47 -0
  11. approach/ovod/APE/configs/BDD10k_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_clip_vlf_lsj1024.py +101 -0
  12. approach/ovod/APE/configs/BDD10k_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1024.py +22 -0
  13. approach/ovod/APE/configs/BDD10k_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_vlf_lsj1024.py +47 -0
  14. approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_r50_12ep.py +48 -0
  15. approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_r50_24ep.py +47 -0
  16. approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitb_clip_openai_lsj1024_cp_12ep.py +20 -0
  17. approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitb_lsj1024_12ep.py +79 -0
  18. approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitg_eva_lsj1024_12ep.py +62 -0
  19. approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitg_eva_lsj1024_cp_12ep.py +12 -0
  20. approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitl_eva02_lsj1024_cp_12ep.py +101 -0
  21. approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitl_eva_lsj1024_cp_12ep.py +25 -0
  22. approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitl_lsj1024_12ep.py +35 -0
  23. approach/ovod/APE/configs/COCO_Detection/deformable_deta/models/deformable_deta_r50.py +124 -0
  24. approach/ovod/APE/configs/COCO_Detection/deformable_detr/deformable_detr_r50_50ep.py +38 -0
  25. approach/ovod/APE/configs/COCO_Detection/deformable_detr/deformable_detr_r50_two_stage_50ep.py +7 -0
  26. approach/ovod/APE/configs/COCO_Detection/deformable_detr/deformable_detr_r50_with_box_refinement_50ep.py +6 -0
  27. approach/ovod/APE/configs/COCO_Detection/deformable_detr/improved_deformable_detr_r50_12ep.py +46 -0
  28. approach/ovod/APE/configs/COCO_Detection/deformable_detr/improved_deformable_detr_r50_50ep.py +45 -0
  29. approach/ovod/APE/configs/COCO_Detection/deformable_detr/improved_deformable_detr_r50_two_stage_12ep.py +7 -0
  30. approach/ovod/APE/configs/COCO_Detection/deformable_detr/improved_deformable_detr_r50_two_stage_50ep.py +7 -0
  31. approach/ovod/APE/configs/COCO_Detection/deformable_detr/models/deformable_detr_r50.py +109 -0
  32. approach/ovod/APE/configs/COCO_Detection/deformable_detr/models/improved_deformable_detr_r50.py +109 -0
  33. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_r50_12ep.py +63 -0
  34. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_r50_vlf_12ep.py +46 -0
  35. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vite_eva02_clip_lsj1536_cp_64x90k.py +85 -0
  36. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitg_eva01_clip_lsj1536_cp_128x45k.py +84 -0
  37. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitg_eva01_clip_lsj1536_cp_64x90k.py +84 -0
  38. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitg_eva01_lsj1536_cp_64x90k.py +81 -0
  39. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_clip_lsj1024_cp_12ep.py +95 -0
  40. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_clip_lsj1536_cp_128x45k.py +19 -0
  41. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_clip_lsj1536_cp_64x90k.py +92 -0
  42. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_clip_vlf_lsj1024_cp_12ep.py +52 -0
  43. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1024_cp_12ep.py +86 -0
  44. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1536_cp_128x90k.py +11 -0
  45. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1536_cp_12ep.py +83 -0
  46. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1536_cp_64x90k.py +83 -0
  47. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_vlf_lsj1024_cp_12ep.py +46 -0
  48. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_lsj1024_cp_12ep.py +118 -0
  49. approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/models/ape_deta_r50.py +155 -0
  50. approach/ovod/APE/configs/COCO_InstanceSegmentation/deformable_deta/deformable_deta_segm_r50_12ep.py +53 -0
approach/ovod/APE/configs/ADE20kFull_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_clip_vlf_lsj1024.py ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch.nn as nn
2
+
3
+ from detectron2.config import LazyCall as L
4
+ from detectron2.layers import ShapeSpec
5
+ from detrex.modeling.neck import ChannelMapper
6
+ from ape.layers import VisionLanguageFusion
7
+ from ape.modeling.ape_deta import (
8
+ DeformableDETRSegmVL,
9
+ DeformableDetrTransformerDecoderVL,
10
+ DeformableDetrTransformerEncoderVL,
11
+ DeformableDetrTransformerVL,
12
+ )
13
+ from ape.modeling.text import EVA02CLIP
14
+
15
+ from ...common.backbone.vitl_eva02_clip import backbone
16
+ from .ape_deta_vitl_eva02_lsj1024 import dataloader, lr_multiplier, model, optimizer, train
17
+
18
+ model.model_vision.backbone = backbone
19
+
20
+ train.init_checkpoint = (
21
+ "models/QuanSun/EVA-CLIP/EVA02_CLIP_L_336_psz14to16_s6B.pt?matching_heuristics=True"
22
+ )
23
+
24
+ model.model_language = L(EVA02CLIP)(
25
+ clip_model="EVA02-CLIP-bigE-14-plus",
26
+ cache_dir="models/QuanSun/EVA-CLIP/EVA02_CLIP_E_psz14_plus_s9B.pt",
27
+ dtype="float16",
28
+ )
29
+ model.model_vision.embed_dim_language = 1024
30
+
31
+ model.model_vision.neck = L(ChannelMapper)(
32
+ input_shapes={
33
+ "p2": ShapeSpec(channels=256),
34
+ "p3": ShapeSpec(channels=256),
35
+ "p4": ShapeSpec(channels=256),
36
+ "p5": ShapeSpec(channels=256),
37
+ "p6": ShapeSpec(channels=256),
38
+ },
39
+ in_features=["p2", "p3", "p4", "p5", "p6"],
40
+ out_channels=256,
41
+ num_outs=5,
42
+ kernel_size=1,
43
+ norm_layer=L(nn.GroupNorm)(num_groups=32, num_channels=256),
44
+ )
45
+
46
+ model.model_vision.mask_in_features = ["p2"]
47
+ model.model_vision.input_shapes = {
48
+ "p2": ShapeSpec(channels=256),
49
+ "p3": ShapeSpec(channels=256),
50
+ "p4": ShapeSpec(channels=256),
51
+ "p5": ShapeSpec(channels=256),
52
+ "p6": ShapeSpec(channels=256),
53
+ }
54
+
55
+ model.model_vision.transformer.encoder.num_layers = 6
56
+ model.model_vision.transformer.decoder.num_layers = 6
57
+ model.model_vision.transformer.encoder.embed_dim = 256
58
+ model.model_vision.transformer.decoder.embed_dim = 256
59
+ model.model_vision.embed_dim = 256
60
+ model.model_vision.backbone.out_channels = 256
61
+
62
+ model.model_vision.update(
63
+ _target_=DeformableDETRSegmVL,
64
+ )
65
+ model.model_vision.transformer.update(
66
+ _target_=DeformableDetrTransformerVL,
67
+ )
68
+ model.model_vision.transformer.encoder.update(
69
+ _target_=DeformableDetrTransformerEncoderVL,
70
+ )
71
+ model.model_vision.transformer.decoder.update(
72
+ _target_=DeformableDetrTransformerDecoderVL,
73
+ )
74
+
75
+
76
+ model.model_vision.transformer.encoder.vl_layer = L(VisionLanguageFusion)(
77
+ v_dim="${....embed_dim}",
78
+ l_dim="${....embed_dim_language}",
79
+ embed_dim=2048,
80
+ num_heads=8,
81
+ dropout=0.1,
82
+ drop_path=0.0,
83
+ init_values=1.0 / 6,
84
+ stable_softmax_2d=True,
85
+ clamp_min_for_underflow=True,
86
+ clamp_max_for_overflow=True,
87
+ use_checkpoint=True,
88
+ )
89
+
90
+ model.model_vision.text_feature_bank = True
91
+ model.model_vision.text_feature_reduce_before_fusion = True
92
+ model.model_vision.text_feature_batch_repeat = True
93
+ model.model_vision.expression_cumulative_gt_class = True
94
+ model.model_vision.name_prompt_fusion_type = "zero"
95
+
96
+ model.model_vision.stuff_dataset_learn_thing = False
97
+ model.model_vision.stuff_prob_thing = -1.0
98
+ model.model_vision.transformer.proposal_ambiguous = 1
99
+
100
+ train.output_dir = "output/" + __file__[:-3]
101
+ model.model_vision.vis_period = 12800
approach/ovod/APE/configs/ADE20kFull_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1024.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.data import MetadataCatalog
2
+
3
+ from ...COCO_InstanceSegmentation.ape_deta.ape_deta_vitl_eva02_lsj1024_cp_12ep import (
4
+ lr_multiplier,
5
+ model,
6
+ optimizer,
7
+ train,
8
+ )
9
+ from ...common.data.ade20kfull_semantic_lsj1024 import dataloader
10
+
11
+ stuff_classes = MetadataCatalog.get("ade20k_full_sem_seg_train").stuff_classes
12
+ del MetadataCatalog.get("ade20k_full_sem_seg_train").stuff_classes
13
+ MetadataCatalog.get("ade20k_full_sem_seg_train").set(
14
+ stuff_classes=[x.split(",")[0] for x in stuff_classes]
15
+ )
16
+
17
+ model.model_vision.dataset_prompts = ["name"]
18
+ model.model_vision.name_prompt_fusion_text = [False]
19
+ model.model_vision.dataset_names = ["ade20k_full_sem_seg"]
20
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
21
+
22
+ model.model_vision.num_classes = 847
23
+ model.model_vision.criterion[0].num_classes = 847
24
+ model.model_vision.select_box_nums_for_evaluation = 300
25
+
26
+ model.model_vision.instance_on = False
27
+ model.model_vision.semantic_on = True
28
+ model.model_vision.panoptic_on = False
29
+
30
+ model.model_vision.stuff_prob_thing = -1.0
31
+
32
+ train.output_dir = "output/" + __file__[:-3]
approach/ovod/APE/configs/ADE20kFull_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_vlf_lsj1024.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from ape.layers import VisionLanguageFusion
3
+ from ape.modeling.ape_deta import (
4
+ DeformableDETRSegmVL,
5
+ DeformableDetrTransformerDecoderVL,
6
+ DeformableDetrTransformerEncoderVL,
7
+ DeformableDetrTransformerVL,
8
+ )
9
+
10
+ from .ape_deta_vitl_eva02_lsj1024 import dataloader, lr_multiplier, model, optimizer, train
11
+
12
+ model.model_vision.update(
13
+ _target_=DeformableDETRSegmVL,
14
+ )
15
+ model.model_vision.transformer.update(
16
+ _target_=DeformableDetrTransformerVL,
17
+ )
18
+ model.model_vision.transformer.encoder.update(
19
+ _target_=DeformableDetrTransformerEncoderVL,
20
+ )
21
+ model.model_vision.transformer.decoder.update(
22
+ _target_=DeformableDetrTransformerDecoderVL,
23
+ )
24
+
25
+
26
+ model.model_vision.transformer.encoder.vl_layer = L(VisionLanguageFusion)(
27
+ v_dim="${....embed_dim}",
28
+ l_dim="${....embed_dim_language}",
29
+ embed_dim=2048,
30
+ num_heads=8,
31
+ dropout=0.1,
32
+ drop_path=0.0,
33
+ init_values=1.0 / 6,
34
+ stable_softmax_2d=True,
35
+ clamp_min_for_underflow=True,
36
+ clamp_max_for_overflow=True,
37
+ use_checkpoint=True,
38
+ )
39
+
40
+ model.model_vision.text_feature_bank = True
41
+ model.model_vision.text_feature_reduce_before_fusion = True
42
+ model.model_vision.text_feature_batch_repeat = True
43
+ model.model_vision.expression_cumulative_gt_class = True
44
+ model.model_vision.name_prompt_fusion_type = "zero"
45
+
46
+ train.output_dir = "output/" + __file__[:-3]
47
+ model.model_vision.vis_period = 12800
approach/ovod/APE/configs/ADE20k_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_clip_vlf_lsj1024.py ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch.nn as nn
2
+
3
+ from detectron2.config import LazyCall as L
4
+ from detectron2.layers import ShapeSpec
5
+ from detrex.modeling.neck import ChannelMapper
6
+ from ape.layers import VisionLanguageFusion
7
+ from ape.modeling.ape_deta import (
8
+ DeformableDETRSegmVL,
9
+ DeformableDetrTransformerDecoderVL,
10
+ DeformableDetrTransformerEncoderVL,
11
+ DeformableDetrTransformerVL,
12
+ )
13
+ from ape.modeling.text import EVA02CLIP
14
+
15
+ from ...common.backbone.vitl_eva02_clip import backbone
16
+ from .ape_deta_vitl_eva02_lsj1024 import dataloader, lr_multiplier, model, optimizer, train
17
+
18
+ model.model_vision.backbone = backbone
19
+
20
+ train.init_checkpoint = (
21
+ "models/QuanSun/EVA-CLIP/EVA02_CLIP_L_336_psz14to16_s6B.pt?matching_heuristics=True"
22
+ )
23
+
24
+ model.model_language = L(EVA02CLIP)(
25
+ clip_model="EVA02-CLIP-bigE-14-plus",
26
+ cache_dir="models/QuanSun/EVA-CLIP/EVA02_CLIP_E_psz14_plus_s9B.pt",
27
+ dtype="float16",
28
+ )
29
+ model.model_vision.embed_dim_language = 1024
30
+
31
+ model.model_vision.neck = L(ChannelMapper)(
32
+ input_shapes={
33
+ "p2": ShapeSpec(channels=256),
34
+ "p3": ShapeSpec(channels=256),
35
+ "p4": ShapeSpec(channels=256),
36
+ "p5": ShapeSpec(channels=256),
37
+ "p6": ShapeSpec(channels=256),
38
+ },
39
+ in_features=["p2", "p3", "p4", "p5", "p6"],
40
+ out_channels=256,
41
+ num_outs=5,
42
+ kernel_size=1,
43
+ norm_layer=L(nn.GroupNorm)(num_groups=32, num_channels=256),
44
+ )
45
+
46
+ model.model_vision.mask_in_features = ["p2"]
47
+ model.model_vision.input_shapes = {
48
+ "p2": ShapeSpec(channels=256),
49
+ "p3": ShapeSpec(channels=256),
50
+ "p4": ShapeSpec(channels=256),
51
+ "p5": ShapeSpec(channels=256),
52
+ "p6": ShapeSpec(channels=256),
53
+ }
54
+
55
+ model.model_vision.transformer.encoder.num_layers = 6
56
+ model.model_vision.transformer.decoder.num_layers = 6
57
+ model.model_vision.transformer.encoder.embed_dim = 256
58
+ model.model_vision.transformer.decoder.embed_dim = 256
59
+ model.model_vision.embed_dim = 256
60
+ model.model_vision.backbone.out_channels = 256
61
+
62
+ model.model_vision.update(
63
+ _target_=DeformableDETRSegmVL,
64
+ )
65
+ model.model_vision.transformer.update(
66
+ _target_=DeformableDetrTransformerVL,
67
+ )
68
+ model.model_vision.transformer.encoder.update(
69
+ _target_=DeformableDetrTransformerEncoderVL,
70
+ )
71
+ model.model_vision.transformer.decoder.update(
72
+ _target_=DeformableDetrTransformerDecoderVL,
73
+ )
74
+
75
+
76
+ model.model_vision.transformer.encoder.vl_layer = L(VisionLanguageFusion)(
77
+ v_dim="${....embed_dim}",
78
+ l_dim="${....embed_dim_language}",
79
+ embed_dim=2048,
80
+ num_heads=8,
81
+ dropout=0.1,
82
+ drop_path=0.0,
83
+ init_values=1.0 / 6,
84
+ stable_softmax_2d=True,
85
+ clamp_min_for_underflow=True,
86
+ clamp_max_for_overflow=True,
87
+ use_checkpoint=True,
88
+ )
89
+
90
+ model.model_vision.text_feature_bank = True
91
+ model.model_vision.text_feature_reduce_before_fusion = True
92
+ model.model_vision.text_feature_batch_repeat = True
93
+ model.model_vision.expression_cumulative_gt_class = True
94
+ model.model_vision.name_prompt_fusion_type = "zero"
95
+
96
+ model.model_vision.stuff_dataset_learn_thing = False
97
+ model.model_vision.stuff_prob_thing = -1.0
98
+ model.model_vision.transformer.proposal_ambiguous = 1
99
+
100
+ train.output_dir = "output/" + __file__[:-3]
101
+ model.model_vision.vis_period = 12800
approach/ovod/APE/configs/ADE20k_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1024.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from ...COCO_InstanceSegmentation.ape_deta.ape_deta_vitl_eva02_lsj1024_cp_12ep import (
2
+ lr_multiplier,
3
+ model,
4
+ optimizer,
5
+ train,
6
+ )
7
+ from ...common.data.ade20k_semantic_lsj1024 import dataloader
8
+
9
+ model.model_vision.dataset_prompts = ["name"]
10
+ model.model_vision.name_prompt_fusion_text = [False]
11
+ model.model_vision.dataset_names = ["ade20k"]
12
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
13
+
14
+ model.model_vision.select_box_nums_for_evaluation = 300
15
+
16
+ model.model_vision.instance_on = False
17
+ model.model_vision.semantic_on = True
18
+ model.model_vision.panoptic_on = False
19
+
20
+ model.model_vision.stuff_prob_thing = -1.0
21
+
22
+ train.output_dir = "output/" + __file__[:-3]
approach/ovod/APE/configs/ADE20k_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_vlf_lsj1024.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from ape.layers import VisionLanguageFusion
3
+ from ape.modeling.ape_deta import (
4
+ DeformableDETRSegmVL,
5
+ DeformableDetrTransformerDecoderVL,
6
+ DeformableDetrTransformerEncoderVL,
7
+ DeformableDetrTransformerVL,
8
+ )
9
+
10
+ from .ape_deta_vitl_eva02_lsj1024 import dataloader, lr_multiplier, model, optimizer, train
11
+
12
+ model.model_vision.update(
13
+ _target_=DeformableDETRSegmVL,
14
+ )
15
+ model.model_vision.transformer.update(
16
+ _target_=DeformableDetrTransformerVL,
17
+ )
18
+ model.model_vision.transformer.encoder.update(
19
+ _target_=DeformableDetrTransformerEncoderVL,
20
+ )
21
+ model.model_vision.transformer.decoder.update(
22
+ _target_=DeformableDetrTransformerDecoderVL,
23
+ )
24
+
25
+
26
+ model.model_vision.transformer.encoder.vl_layer = L(VisionLanguageFusion)(
27
+ v_dim="${....embed_dim}",
28
+ l_dim="${....embed_dim_language}",
29
+ embed_dim=2048,
30
+ num_heads=8,
31
+ dropout=0.1,
32
+ drop_path=0.0,
33
+ init_values=1.0 / 6,
34
+ stable_softmax_2d=True,
35
+ clamp_min_for_underflow=True,
36
+ clamp_max_for_overflow=True,
37
+ use_checkpoint=True,
38
+ )
39
+
40
+ model.model_vision.text_feature_bank = True
41
+ model.model_vision.text_feature_reduce_before_fusion = True
42
+ model.model_vision.text_feature_batch_repeat = True
43
+ model.model_vision.expression_cumulative_gt_class = True
44
+ model.model_vision.name_prompt_fusion_type = "zero"
45
+
46
+ train.output_dir = "output/" + __file__[:-3]
47
+ model.model_vision.vis_period = 12800
approach/ovod/APE/configs/ADE20k_SemanticSegmentation/deformable_deta/deformable_deta_segm_r50_160k.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from detectron2.solver import WarmupParamScheduler
3
+ from fvcore.common.param_scheduler import MultiStepParamScheduler
4
+
5
+ from ...COCO_InstanceSegmentation.deformable_deta.deformable_deta_segm_r50_12ep import (
6
+ lr_multiplier,
7
+ model,
8
+ optimizer,
9
+ train,
10
+ )
11
+ from ...common.data.ade20k_semantic import dataloader
12
+
13
+ num_classes = 150
14
+ model.num_classes = num_classes
15
+ model.criterion.num_classes = num_classes
16
+ model.criterion.matcher_stage2.num_classes = num_classes
17
+ model.criterion.eos_coef = 1.0
18
+
19
+ model.instance_on = False
20
+ model.semantic_on = True
21
+ model.panoptic_on = False
22
+
23
+ train.max_iter = 160000
24
+ train.eval_period = 5000
25
+
26
+ lr_multiplier = L(WarmupParamScheduler)(
27
+ scheduler=L(MultiStepParamScheduler)(
28
+ values=[1.0, 0.1, 0.01],
29
+ milestones=[135000, 150000],
30
+ num_updates=160000,
31
+ ),
32
+ warmup_length=1000 / 160000,
33
+ warmup_method="linear",
34
+ warmup_factor=0.001,
35
+ )
36
+
37
+ train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
38
+ train.init_checkpoint = "models/torchvision/R-50.pkl"
39
+ train.output_dir = "output/" + __file__[:-3]
40
+
41
+ train.amp.enabled = True
42
+ train.ddp.fp16_compression = True
43
+ train.ddp.find_unused_parameters = True
44
+
45
+ model.dataset_metas = dataloader.train.dataset.names
approach/ovod/APE/configs/BDD10k_PanopticSegmentation/ape_deta/ape_deta_vitl_eva02_clip_vlf_lsj1024.py ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch.nn as nn
2
+
3
+ from detectron2.config import LazyCall as L
4
+ from detectron2.layers import ShapeSpec
5
+ from detrex.modeling.neck import ChannelMapper
6
+ from ape.layers import VisionLanguageFusion
7
+ from ape.modeling.ape_deta import (
8
+ DeformableDETRSegmVL,
9
+ DeformableDetrTransformerDecoderVL,
10
+ DeformableDetrTransformerEncoderVL,
11
+ DeformableDetrTransformerVL,
12
+ )
13
+ from ape.modeling.text import EVA02CLIP
14
+
15
+ from ...common.backbone.vitl_eva02_clip import backbone
16
+ from .ape_deta_vitl_eva02_lsj1024 import dataloader, lr_multiplier, model, optimizer, train
17
+
18
+ model.model_vision.backbone = backbone
19
+
20
+ train.init_checkpoint = (
21
+ "models/QuanSun/EVA-CLIP/EVA02_CLIP_L_336_psz14to16_s6B.pt?matching_heuristics=True"
22
+ )
23
+
24
+ model.model_language = L(EVA02CLIP)(
25
+ clip_model="EVA02-CLIP-bigE-14-plus",
26
+ cache_dir="models/QuanSun/EVA-CLIP/EVA02_CLIP_E_psz14_plus_s9B.pt",
27
+ dtype="float16",
28
+ )
29
+ model.model_vision.embed_dim_language = 1024
30
+
31
+ model.model_vision.neck = L(ChannelMapper)(
32
+ input_shapes={
33
+ "p2": ShapeSpec(channels=256),
34
+ "p3": ShapeSpec(channels=256),
35
+ "p4": ShapeSpec(channels=256),
36
+ "p5": ShapeSpec(channels=256),
37
+ "p6": ShapeSpec(channels=256),
38
+ },
39
+ in_features=["p2", "p3", "p4", "p5", "p6"],
40
+ out_channels=256,
41
+ num_outs=5,
42
+ kernel_size=1,
43
+ norm_layer=L(nn.GroupNorm)(num_groups=32, num_channels=256),
44
+ )
45
+
46
+ model.model_vision.mask_in_features = ["p2"]
47
+ model.model_vision.input_shapes = {
48
+ "p2": ShapeSpec(channels=256),
49
+ "p3": ShapeSpec(channels=256),
50
+ "p4": ShapeSpec(channels=256),
51
+ "p5": ShapeSpec(channels=256),
52
+ "p6": ShapeSpec(channels=256),
53
+ }
54
+
55
+ model.model_vision.transformer.encoder.num_layers = 6
56
+ model.model_vision.transformer.decoder.num_layers = 6
57
+ model.model_vision.transformer.encoder.embed_dim = 256
58
+ model.model_vision.transformer.decoder.embed_dim = 256
59
+ model.model_vision.embed_dim = 256
60
+ model.model_vision.backbone.out_channels = 256
61
+
62
+ model.model_vision.update(
63
+ _target_=DeformableDETRSegmVL,
64
+ )
65
+ model.model_vision.transformer.update(
66
+ _target_=DeformableDetrTransformerVL,
67
+ )
68
+ model.model_vision.transformer.encoder.update(
69
+ _target_=DeformableDetrTransformerEncoderVL,
70
+ )
71
+ model.model_vision.transformer.decoder.update(
72
+ _target_=DeformableDetrTransformerDecoderVL,
73
+ )
74
+
75
+
76
+ model.model_vision.transformer.encoder.vl_layer = L(VisionLanguageFusion)(
77
+ v_dim="${....embed_dim}",
78
+ l_dim="${....embed_dim_language}",
79
+ embed_dim=2048,
80
+ num_heads=8,
81
+ dropout=0.1,
82
+ drop_path=0.0,
83
+ init_values=1.0 / 6,
84
+ stable_softmax_2d=True,
85
+ clamp_min_for_underflow=True,
86
+ clamp_max_for_overflow=True,
87
+ use_checkpoint=True,
88
+ )
89
+
90
+ model.model_vision.text_feature_bank = True
91
+ model.model_vision.text_feature_reduce_before_fusion = True
92
+ model.model_vision.text_feature_batch_repeat = True
93
+ model.model_vision.expression_cumulative_gt_class = True
94
+ model.model_vision.name_prompt_fusion_type = "zero"
95
+
96
+ model.model_vision.stuff_dataset_learn_thing = False
97
+ model.model_vision.stuff_prob_thing = -1.0
98
+ model.model_vision.transformer.proposal_ambiguous = 1
99
+
100
+ model.model_vision.panoptic_configs = {
101
+ "prob": 0.01,
102
+ "pano_temp": 0.06,
103
+ "transform_eval": True,
104
+ "object_mask_threshold": 0.0001,
105
+ "overlap_threshold": 0.4,
106
+ }
107
+
108
+ train.output_dir = "output/" + __file__[:-3]
109
+ model.model_vision.vis_period = 12800
approach/ovod/APE/configs/BDD10k_PanopticSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1024.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from ...COCO_InstanceSegmentation.ape_deta.ape_deta_vitl_eva02_lsj1024_cp_12ep import (
2
+ lr_multiplier,
3
+ model,
4
+ optimizer,
5
+ train,
6
+ )
7
+ from ...common.data.bdd10k_panoptic_lsj1024 import dataloader
8
+
9
+ model.model_vision.dataset_prompts = ["name"]
10
+ model.model_vision.name_prompt_fusion_text = [False]
11
+ model.model_vision.dataset_names = ["bdd10k"]
12
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
13
+
14
+ model.model_vision.select_box_nums_for_evaluation = 300
15
+
16
+
17
+ model.model_vision.instance_on = True
18
+ model.model_vision.semantic_on = True
19
+ model.model_vision.panoptic_on = True
20
+
21
+ model.model_vision.stuff_prob_thing = -1.0
22
+
23
+ train.output_dir = "output/" + __file__[:-3]
approach/ovod/APE/configs/BDD10k_PanopticSegmentation/ape_deta/ape_deta_vitl_eva02_vlf_lsj1024.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from ape.layers import VisionLanguageFusion
3
+ from ape.modeling.ape_deta import (
4
+ DeformableDETRSegmVL,
5
+ DeformableDetrTransformerDecoderVL,
6
+ DeformableDetrTransformerEncoderVL,
7
+ DeformableDetrTransformerVL,
8
+ )
9
+
10
+ from .ape_deta_vitl_eva02_lsj1024 import dataloader, lr_multiplier, model, optimizer, train
11
+
12
+ model.model_vision.update(
13
+ _target_=DeformableDETRSegmVL,
14
+ )
15
+ model.model_vision.transformer.update(
16
+ _target_=DeformableDetrTransformerVL,
17
+ )
18
+ model.model_vision.transformer.encoder.update(
19
+ _target_=DeformableDetrTransformerEncoderVL,
20
+ )
21
+ model.model_vision.transformer.decoder.update(
22
+ _target_=DeformableDetrTransformerDecoderVL,
23
+ )
24
+
25
+
26
+ model.model_vision.transformer.encoder.vl_layer = L(VisionLanguageFusion)(
27
+ v_dim="${....embed_dim}",
28
+ l_dim="${....embed_dim_language}",
29
+ embed_dim=2048,
30
+ num_heads=8,
31
+ dropout=0.1,
32
+ drop_path=0.0,
33
+ init_values=1.0 / 6,
34
+ stable_softmax_2d=True,
35
+ clamp_min_for_underflow=True,
36
+ clamp_max_for_overflow=True,
37
+ use_checkpoint=True,
38
+ )
39
+
40
+ model.model_vision.text_feature_bank = True
41
+ model.model_vision.text_feature_reduce_before_fusion = True
42
+ model.model_vision.text_feature_batch_repeat = True
43
+ model.model_vision.expression_cumulative_gt_class = True
44
+ model.model_vision.name_prompt_fusion_type = "zero"
45
+
46
+ train.output_dir = "output/" + __file__[:-3]
47
+ model.model_vision.vis_period = 12800
approach/ovod/APE/configs/BDD10k_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_clip_vlf_lsj1024.py ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch.nn as nn
2
+
3
+ from detectron2.config import LazyCall as L
4
+ from detectron2.layers import ShapeSpec
5
+ from detrex.modeling.neck import ChannelMapper
6
+ from ape.layers import VisionLanguageFusion
7
+ from ape.modeling.ape_deta import (
8
+ DeformableDETRSegmVL,
9
+ DeformableDetrTransformerDecoderVL,
10
+ DeformableDetrTransformerEncoderVL,
11
+ DeformableDetrTransformerVL,
12
+ )
13
+ from ape.modeling.text import EVA02CLIP
14
+
15
+ from ...common.backbone.vitl_eva02_clip import backbone
16
+ from .ape_deta_vitl_eva02_lsj1024 import dataloader, lr_multiplier, model, optimizer, train
17
+
18
+ model.model_vision.backbone = backbone
19
+
20
+ train.init_checkpoint = (
21
+ "models/QuanSun/EVA-CLIP/EVA02_CLIP_L_336_psz14to16_s6B.pt?matching_heuristics=True"
22
+ )
23
+
24
+ model.model_language = L(EVA02CLIP)(
25
+ clip_model="EVA02-CLIP-bigE-14-plus",
26
+ cache_dir="models/QuanSun/EVA-CLIP/EVA02_CLIP_E_psz14_plus_s9B.pt",
27
+ dtype="float16",
28
+ )
29
+ model.model_vision.embed_dim_language = 1024
30
+
31
+ model.model_vision.neck = L(ChannelMapper)(
32
+ input_shapes={
33
+ "p2": ShapeSpec(channels=256),
34
+ "p3": ShapeSpec(channels=256),
35
+ "p4": ShapeSpec(channels=256),
36
+ "p5": ShapeSpec(channels=256),
37
+ "p6": ShapeSpec(channels=256),
38
+ },
39
+ in_features=["p2", "p3", "p4", "p5", "p6"],
40
+ out_channels=256,
41
+ num_outs=5,
42
+ kernel_size=1,
43
+ norm_layer=L(nn.GroupNorm)(num_groups=32, num_channels=256),
44
+ )
45
+
46
+ model.model_vision.mask_in_features = ["p2"]
47
+ model.model_vision.input_shapes = {
48
+ "p2": ShapeSpec(channels=256),
49
+ "p3": ShapeSpec(channels=256),
50
+ "p4": ShapeSpec(channels=256),
51
+ "p5": ShapeSpec(channels=256),
52
+ "p6": ShapeSpec(channels=256),
53
+ }
54
+
55
+ model.model_vision.transformer.encoder.num_layers = 6
56
+ model.model_vision.transformer.decoder.num_layers = 6
57
+ model.model_vision.transformer.encoder.embed_dim = 256
58
+ model.model_vision.transformer.decoder.embed_dim = 256
59
+ model.model_vision.embed_dim = 256
60
+ model.model_vision.backbone.out_channels = 256
61
+
62
+ model.model_vision.update(
63
+ _target_=DeformableDETRSegmVL,
64
+ )
65
+ model.model_vision.transformer.update(
66
+ _target_=DeformableDetrTransformerVL,
67
+ )
68
+ model.model_vision.transformer.encoder.update(
69
+ _target_=DeformableDetrTransformerEncoderVL,
70
+ )
71
+ model.model_vision.transformer.decoder.update(
72
+ _target_=DeformableDetrTransformerDecoderVL,
73
+ )
74
+
75
+
76
+ model.model_vision.transformer.encoder.vl_layer = L(VisionLanguageFusion)(
77
+ v_dim="${....embed_dim}",
78
+ l_dim="${....embed_dim_language}",
79
+ embed_dim=2048,
80
+ num_heads=8,
81
+ dropout=0.1,
82
+ drop_path=0.0,
83
+ init_values=1.0 / 6,
84
+ stable_softmax_2d=True,
85
+ clamp_min_for_underflow=True,
86
+ clamp_max_for_overflow=True,
87
+ use_checkpoint=True,
88
+ )
89
+
90
+ model.model_vision.text_feature_bank = True
91
+ model.model_vision.text_feature_reduce_before_fusion = True
92
+ model.model_vision.text_feature_batch_repeat = True
93
+ model.model_vision.expression_cumulative_gt_class = True
94
+ model.model_vision.name_prompt_fusion_type = "zero"
95
+
96
+ model.model_vision.stuff_dataset_learn_thing = False
97
+ model.model_vision.stuff_prob_thing = -1.0
98
+ model.model_vision.transformer.proposal_ambiguous = 1
99
+
100
+ train.output_dir = "output/" + __file__[:-3]
101
+ model.model_vision.vis_period = 12800
approach/ovod/APE/configs/BDD10k_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1024.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from ...COCO_InstanceSegmentation.ape_deta.ape_deta_vitl_eva02_lsj1024_cp_12ep import (
2
+ lr_multiplier,
3
+ model,
4
+ optimizer,
5
+ train,
6
+ )
7
+ from ...common.data.bdd10k_semantic_lsj1024 import dataloader
8
+
9
+ model.model_vision.dataset_prompts = ["name"]
10
+ model.model_vision.name_prompt_fusion_text = [False]
11
+ model.model_vision.dataset_names = ["bdd10k"]
12
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
13
+
14
+ model.model_vision.select_box_nums_for_evaluation = 300
15
+
16
+ model.model_vision.instance_on = False
17
+ model.model_vision.semantic_on = True
18
+ model.model_vision.panoptic_on = False
19
+
20
+ model.model_vision.stuff_prob_thing = -1.0
21
+
22
+ train.output_dir = "output/" + __file__[:-3]
approach/ovod/APE/configs/BDD10k_SemanticSegmentation/ape_deta/ape_deta_vitl_eva02_vlf_lsj1024.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from ape.layers import VisionLanguageFusion
3
+ from ape.modeling.ape_deta import (
4
+ DeformableDETRSegmVL,
5
+ DeformableDetrTransformerDecoderVL,
6
+ DeformableDetrTransformerEncoderVL,
7
+ DeformableDetrTransformerVL,
8
+ )
9
+
10
+ from .ape_deta_vitl_eva02_lsj1024 import dataloader, lr_multiplier, model, optimizer, train
11
+
12
+ model.model_vision.update(
13
+ _target_=DeformableDETRSegmVL,
14
+ )
15
+ model.model_vision.transformer.update(
16
+ _target_=DeformableDetrTransformerVL,
17
+ )
18
+ model.model_vision.transformer.encoder.update(
19
+ _target_=DeformableDetrTransformerEncoderVL,
20
+ )
21
+ model.model_vision.transformer.decoder.update(
22
+ _target_=DeformableDetrTransformerDecoderVL,
23
+ )
24
+
25
+
26
+ model.model_vision.transformer.encoder.vl_layer = L(VisionLanguageFusion)(
27
+ v_dim="${....embed_dim}",
28
+ l_dim="${....embed_dim_language}",
29
+ embed_dim=2048,
30
+ num_heads=8,
31
+ dropout=0.1,
32
+ drop_path=0.0,
33
+ init_values=1.0 / 6,
34
+ stable_softmax_2d=True,
35
+ clamp_min_for_underflow=True,
36
+ clamp_max_for_overflow=True,
37
+ use_checkpoint=True,
38
+ )
39
+
40
+ model.model_vision.text_feature_bank = True
41
+ model.model_vision.text_feature_reduce_before_fusion = True
42
+ model.model_vision.text_feature_batch_repeat = True
43
+ model.model_vision.expression_cumulative_gt_class = True
44
+ model.model_vision.name_prompt_fusion_type = "zero"
45
+
46
+ train.output_dir = "output/" + __file__[:-3]
47
+ model.model_vision.vis_period = 12800
approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_r50_12ep.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detrex.config import get_config
2
+
3
+ from .models.deformable_deta_r50 import model
4
+
5
+ dataloader = get_config("common/data/coco_detr.py").dataloader
6
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
7
+ lr_multiplier.scheduler.milestones = [75000, 90000]
8
+ optimizer = get_config("common/optim.py").AdamW
9
+ train = get_config("common/train.py").train
10
+
11
+ train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
12
+ train.init_checkpoint = "models/torchvision/R-50.pkl"
13
+ train.output_dir = "output/" + __file__[:-3]
14
+
15
+ train.max_iter = 90000
16
+
17
+ train.eval_period = 5000
18
+
19
+ train.log_period = 20
20
+
21
+ train.checkpointer.period = 5000
22
+ train.checkpointer.max_to_keep = 2
23
+
24
+ train.clip_grad.enabled = True
25
+ train.clip_grad.params.max_norm = 0.1
26
+ train.clip_grad.params.norm_type = 2
27
+
28
+ train.device = "cuda"
29
+
30
+ optimizer.lr = 2e-4
31
+ optimizer.betas = (0.9, 0.999)
32
+ optimizer.weight_decay = 1e-4
33
+ optimizer.params.lr_factor_func = (
34
+ lambda module_name: 0.1
35
+ if "backbone" in module_name
36
+ or "reference_points" in module_name
37
+ or "sampling_offsets" in module_name
38
+ else 1
39
+ )
40
+ optimizer.params.weight_decay_norm = None
41
+
42
+ dataloader.train.num_workers = 16
43
+
44
+ dataloader.train.total_batch_size = 16
45
+
46
+
47
+ train.amp.enabled = False
48
+ train.ddp.fp16_compression = False
approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_r50_24ep.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detrex.config import get_config
2
+
3
+ from .models.deformable_deta_r50 import model
4
+
5
+ dataloader = get_config("common/data/coco_detr.py").dataloader
6
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_24ep
7
+ optimizer = get_config("common/optim.py").AdamW
8
+ train = get_config("common/train.py").train
9
+
10
+ train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
11
+ train.init_checkpoint = "models/torchvision/R-50.pkl"
12
+ train.output_dir = "output/" + __file__[:-3]
13
+
14
+ train.max_iter = 180000
15
+
16
+ train.eval_period = 5000
17
+
18
+ train.log_period = 20
19
+
20
+ train.checkpointer.period = 5000
21
+ train.checkpointer.max_to_keep = 2
22
+
23
+ train.clip_grad.enabled = True
24
+ train.clip_grad.params.max_norm = 0.1
25
+ train.clip_grad.params.norm_type = 2
26
+
27
+ train.device = "cuda"
28
+
29
+ optimizer.lr = 2e-4
30
+ optimizer.betas = (0.9, 0.999)
31
+ optimizer.weight_decay = 1e-4
32
+ optimizer.params.lr_factor_func = (
33
+ lambda module_name: 0.1
34
+ if "backbone" in module_name
35
+ or "reference_points" in module_name
36
+ or "sampling_offsets" in module_name
37
+ else 1
38
+ )
39
+ optimizer.params.weight_decay_norm = None
40
+
41
+ dataloader.train.num_workers = 16
42
+
43
+ dataloader.train.total_batch_size = 16
44
+
45
+
46
+ train.amp.enabled = False
47
+ train.ddp.fp16_compression = False
approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitb_clip_openai_lsj1024_cp_12ep.py ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ from ...common.data.coco_lsj1024_cp import dataloader
4
+ from ...common.data.constants import constants
5
+ from .deformable_deta_vitb_lsj1024_12ep import lr_multiplier, model, optimizer, train
6
+
7
+ model.pixel_mean = constants.openai_imagenet_rgb256_mean
8
+ model.pixel_std = constants.openai_imagenet_rgb256_std
9
+ model.input_format = "RGB"
10
+ dataloader.train.mapper.image_format = "RGB"
11
+
12
+
13
+
14
+
15
+ train.init_checkpoint = "models/CLIP/ViT-B-16.pt"
16
+
17
+ train.output_dir = "output/" + __file__[:-3]
18
+ dataloader.evaluator.output_dir = train.output_dir
19
+ dataloader.train.mapper.output_dir = train.output_dir
20
+ dataloader.train.mapper.vis_period = 1
approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitb_lsj1024_12ep.py ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from functools import partial
2
+
3
+ import torch.nn as nn
4
+
5
+ from detectron2.config import LazyCall as L
6
+ from detectron2.modeling import SimpleFeaturePyramid, ViT
7
+ from detectron2.modeling.backbone.fpn import LastLevelMaxPool
8
+ from detectron2.modeling.backbone.vit import get_vit_lr_decay_rate
9
+
10
+ from .....detectron2.configs.common.data.constants import constants
11
+ from .....detectron2.projects.ViTDet.configs.common.coco_loader_lsj import dataloader
12
+ from .deformable_deta_r50_12ep import lr_multiplier, model, optimizer, train
13
+
14
+ model.pixel_mean = constants.imagenet_rgb256_mean
15
+ model.pixel_std = constants.imagenet_rgb256_std
16
+ model.input_format = "RGB"
17
+ dataloader.train.mapper.image_format = "RGB"
18
+ dataloader.train.total_batch_size = 16
19
+
20
+
21
+ embed_dim, depth, num_heads, dp = 768, 12, 12, 0.1
22
+ model.backbone = L(SimpleFeaturePyramid)(
23
+ net=L(ViT)( # Single-scale ViT backbone
24
+ img_size=1024,
25
+ patch_size=16,
26
+ embed_dim=embed_dim,
27
+ depth=depth,
28
+ num_heads=num_heads,
29
+ drop_path_rate=dp,
30
+ window_size=14,
31
+ mlp_ratio=4,
32
+ qkv_bias=True,
33
+ norm_layer=partial(nn.LayerNorm, eps=1e-6),
34
+ window_block_indexes=[
35
+ 0,
36
+ 1,
37
+ 3,
38
+ 4,
39
+ 6,
40
+ 7,
41
+ 9,
42
+ 10,
43
+ ],
44
+ residual_block_indexes=[],
45
+ use_rel_pos=True,
46
+ out_feature="last_feat",
47
+ ),
48
+ in_feature="${.net.out_feature}",
49
+ out_channels=256,
50
+ scale_factors=(4.0, 2.0, 1.0, 0.5),
51
+ top_block=L(LastLevelMaxPool)(),
52
+ norm="LN",
53
+ square_pad=1024,
54
+ )
55
+
56
+ model.neck = None
57
+
58
+ optimizer.params.lr_factor_func = (
59
+ lambda module_name: 0.1
60
+ if "reference_points" in module_name or "sampling_offsets" in module_name
61
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.7, num_layers=12)
62
+ if "backbone" in module_name
63
+ else 1
64
+ )
65
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
66
+
67
+
68
+ lr_multiplier.warmup_length = 1000 / train.max_iter
69
+
70
+ train.amp.enabled = False
71
+ train.ddp.fp16_compression = False
72
+
73
+ train.init_checkpoint = (
74
+ "detectron2://ImageNetPretrained/MAE/mae_pretrain_vit_base.pth?matching_heuristics=True"
75
+ )
76
+ train.init_checkpoint = "models/MAE/mae_pretrain_vit_base.pth?matching_heuristics=True"
77
+
78
+ train.output_dir = "output/" + __file__[:-3]
79
+ dataloader.evaluator.output_dir = train.output_dir
approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitg_eva_lsj1024_12ep.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from functools import partial
2
+
3
+ from ape.modeling.backbone.vit_eva import SimpleFeaturePyramid, ViT, get_vit_lr_decay_rate
4
+
5
+ from ..common.coco_loader_lsj1280 import dataloader
6
+ from .deformable_deta_vitb_lsj1024_12ep import lr_multiplier, model, optimizer, train
7
+
8
+ model.backbone.update(
9
+ _target_=SimpleFeaturePyramid,
10
+ )
11
+ model.backbone.net.update(
12
+ _target_=ViT,
13
+ )
14
+
15
+ dataloader.train.total_batch_size = 16
16
+
17
+ model.backbone.net.beit_like_qkv_bias = True
18
+ model.backbone.net.beit_like_gamma = False
19
+ model.backbone.net.freeze_patch_embed = True
20
+ model.backbone.square_pad = 1280
21
+ model.backbone.net.img_size = 1280
22
+ model.backbone.net.patch_size = 16
23
+ model.backbone.net.window_size = 16
24
+ model.backbone.net.embed_dim = 1408
25
+ model.backbone.net.depth = 40
26
+ model.backbone.net.num_heads = 16
27
+ model.backbone.net.mlp_ratio = 6144 / 1408
28
+ model.backbone.net.use_act_checkpoint = True
29
+ model.backbone.net.drop_path_rate = 0.6 # 0.5 --> 0.6
30
+ model.backbone.net.window_block_indexes = (
31
+ list(range(0, 3))
32
+ + list(range(4, 7))
33
+ + list(range(8, 11))
34
+ + list(range(12, 15))
35
+ + list(range(16, 19))
36
+ + list(range(20, 23))
37
+ + list(range(24, 27))
38
+ + list(range(28, 31))
39
+ + list(range(32, 35))
40
+ + list(range(36, 39))
41
+ )
42
+
43
+ optimizer.lr = 2e-4
44
+ optimizer.params.lr_factor_func = (
45
+ lambda module_name: 0.1
46
+ if "reference_points" in module_name or "sampling_offsets" in module_name
47
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.9, num_layers=40)
48
+ if "backbone" in module_name
49
+ else 1
50
+ )
51
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
52
+ optimizer.params.weight_decay_norm = None
53
+
54
+ train.amp.enabled = False
55
+ train.ddp.fp16_compression = False
56
+
57
+ model.backbone.net.use_act_checkpoint = False
58
+ model.backbone.net.frozen_stages = 41
59
+
60
+ train.init_checkpoint = "models/BAAI/EVA/eva_o365.pth?matching_heuristics=True"
61
+ train.output_dir = "output/" + __file__[:-3]
62
+ dataloader.evaluator.output_dir = train.output_dir
approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitg_eva_lsj1024_cp_12ep.py ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from ....configs.common.data.coco_lsj1024_cp import dataloader
2
+ from .deformable_deta_vitg_eva_lsj1024_12ep import lr_multiplier, model, optimizer, train
3
+
4
+ train.amp.enabled = True
5
+ train.ddp.fp16_compression = True
6
+
7
+ model.backbone.net.use_act_checkpoint = True
8
+ model.backbone.net.frozen_stages = 20
9
+
10
+ train.output_dir = "output/" + __file__[:-3]
11
+ dataloader.evaluator.output_dir = train.output_dir
12
+ dataloader.train.mapper.output_dir = train.output_dir
approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitl_eva02_lsj1024_cp_12ep.py ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from functools import partial
2
+
3
+ import torch.nn as nn
4
+
5
+ from detectron2.config import LazyCall as L
6
+ from detectron2.data.catalog import MetadataCatalog
7
+ from detectron2.layers import ShapeSpec
8
+ from detectron2.modeling.backbone.fpn import LastLevelMaxPool
9
+ from detrex.config import get_config
10
+ from ape.modeling.backbone.vit_eva02 import SimpleFeaturePyramid, ViT, get_vit_lr_decay_rate
11
+
12
+ from .....detectron2.configs.common.data.constants import constants
13
+ from ...common.data.coco_instance_lsj1024_cp import dataloader
14
+ from .models.deformable_deta_r50 import model
15
+
16
+ model.pixel_mean = constants.imagenet_rgb256_mean
17
+ model.pixel_std = constants.imagenet_rgb256_std
18
+ model.input_format = "RGB"
19
+
20
+ model.backbone = L(SimpleFeaturePyramid)(
21
+ net=L(ViT)( # Single-scale ViT backbone
22
+ img_size=1024,
23
+ patch_size=16,
24
+ embed_dim=1024,
25
+ depth=24,
26
+ num_heads=16,
27
+ drop_path_rate=0.4,
28
+ window_size=16,
29
+ mlp_ratio=4 * 2 / 3,
30
+ qkv_bias=True,
31
+ norm_layer=partial(nn.LayerNorm, eps=1e-6),
32
+ window_block_indexes=list(range(0, 5))
33
+ + list(range(6, 11))
34
+ + list(range(12, 17))
35
+ + list(range(18, 23)),
36
+ residual_block_indexes=[],
37
+ use_rel_pos=True,
38
+ out_feature="last_feat",
39
+ use_act_checkpoint=False,
40
+ xattn=True,
41
+ ),
42
+ in_feature="${.net.out_feature}",
43
+ out_channels=256,
44
+ scale_factors=(4.0, 2.0, 1.0, 0.5),
45
+ top_block=L(LastLevelMaxPool)(),
46
+ norm="LN",
47
+ square_pad=1024,
48
+ )
49
+
50
+ model.neck = None
51
+
52
+ optimizer = get_config("common/optim.py").AdamW
53
+ optimizer.params.lr_factor_func = (
54
+ lambda module_name: 0.1
55
+ if "reference_points" in module_name or "sampling_offsets" in module_name
56
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.8, num_layers=24)
57
+ if "backbone" in module_name
58
+ else 1
59
+ )
60
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
61
+ optimizer.params.weight_decay_norm = None
62
+
63
+ optimizer.lr = 2e-4
64
+ optimizer.weight_decay = 1e-4
65
+
66
+ train = get_config("common/train.py").train
67
+ train.max_iter = 90000
68
+ train.eval_period = 5000
69
+ train.log_period = 20
70
+
71
+ train.checkpointer.period = 5000
72
+ train.checkpointer.max_to_keep = 2
73
+
74
+ train.clip_grad.enabled = True
75
+ train.clip_grad.params.max_norm = 0.1
76
+ train.clip_grad.params.norm_type = 2
77
+
78
+ train.device = "cuda"
79
+
80
+ train.init_checkpoint = (
81
+ "models/Yunxin-CV/EVA-02/eva02/pt/eva02_L_pt_in21k_p14to16.pt?matching_heuristics=True"
82
+ )
83
+
84
+ train.amp.enabled = True
85
+ train.ddp.fp16_compression = True
86
+
87
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
88
+ lr_multiplier.scheduler.milestones = [75000, 90000]
89
+ lr_multiplier.warmup_length = 1000 / train.max_iter
90
+
91
+ dataloader.train.num_workers = 16
92
+ dataloader.train.total_batch_size = 16
93
+ dataloader.train.mapper.image_format = "RGB"
94
+
95
+ if isinstance(dataloader.train.dataset.names, str):
96
+ model.metadata = MetadataCatalog.get(dataloader.train.dataset.names)
97
+ else:
98
+ model.metadata = MetadataCatalog.get(dataloader.train.dataset.names[0])
99
+
100
+ train.output_dir = "output/" + __file__[:-3]
101
+ dataloader.train.mapper.output_dir = train.output_dir
approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitl_eva_lsj1024_cp_12ep.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.modeling.backbone.vit import get_vit_lr_decay_rate
2
+
3
+ from ...common.data.coco_lsj1024_cp import dataloader
4
+ from .deformable_deta_vitl_lsj1024_12ep import lr_multiplier, model, optimizer, train
5
+
6
+ train.init_checkpoint = "models/BAAI/EVA/eva_l_psz14to16.pt?matching_heuristics=True"
7
+
8
+ optimizer.params.lr_factor_func = (
9
+ lambda module_name: 0.1
10
+ if "reference_points" in module_name or "sampling_offsets" in module_name
11
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.8, num_layers=24)
12
+ if "backbone" in module_name
13
+ else 1
14
+ )
15
+
16
+ optimizer.lr = 2e-4
17
+ optimizer.weight_decay = 1e-4
18
+
19
+ train.amp.enabled = True
20
+ train.ddp.fp16_compression = True
21
+ model.backbone.net.use_act_checkpoint = False
22
+
23
+ train.output_dir = "output/" + __file__[:-3]
24
+ dataloader.evaluator.output_dir = train.output_dir
25
+ dataloader.train.mapper.output_dir = train.output_dir
approach/ovod/APE/configs/COCO_Detection/deformable_deta/deformable_deta_vitl_lsj1024_12ep.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.modeling.backbone.vit import get_vit_lr_decay_rate
2
+
3
+ from .deformable_deta_vitb_lsj1024_12ep import dataloader, lr_multiplier, model, optimizer, train
4
+
5
+ model.backbone.net.embed_dim = 1024
6
+ model.backbone.net.depth = 24
7
+ model.backbone.net.num_heads = 16
8
+ model.backbone.net.drop_path_rate = 0.4
9
+ model.backbone.net.window_block_indexes = (
10
+ list(range(0, 5)) + list(range(6, 11)) + list(range(12, 17)) + list(range(18, 23))
11
+ )
12
+
13
+ optimizer.params.lr_factor_func = (
14
+ lambda module_name: 0.1
15
+ if "reference_points" in module_name or "sampling_offsets" in module_name
16
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.8, num_layers=24)
17
+ if "backbone" in module_name
18
+ else 1
19
+ )
20
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
21
+
22
+ optimizer.lr = 2e-4
23
+ optimizer.weight_decay = 0.05
24
+
25
+ train.init_checkpoint = (
26
+ "detectron2://ImageNetPretrained/MAE/mae_pretrain_vit_large.pth?matching_heuristics=True"
27
+ )
28
+ train.init_checkpoint = "models/MAE/mae_pretrain_vit_large.pth?matching_heuristics=True"
29
+
30
+ train.amp.enabled = True
31
+ train.ddp.fp16_compression = True
32
+ model.backbone.net.use_act_checkpoint = False
33
+
34
+ train.output_dir = "output/" + __file__[:-3]
35
+ dataloader.evaluator.output_dir = train.output_dir
approach/ovod/APE/configs/COCO_Detection/deformable_deta/models/deformable_deta_r50.py ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch.nn as nn
2
+
3
+ from detectron2.config import LazyCall as L
4
+ from detectron2.layers import ShapeSpec
5
+ from detectron2.modeling.backbone import BasicStem, ResNet
6
+ from detrex.layers import PositionEmbeddingSine
7
+ from detrex.modeling.matcher import HungarianMatcher
8
+ from detrex.modeling.neck import ChannelMapper
9
+ from ape.modeling.deta import (
10
+ DeformableCriterion,
11
+ DeformableDETR,
12
+ DeformableDetrTransformer,
13
+ DeformableDetrTransformerDecoder,
14
+ DeformableDetrTransformerEncoder,
15
+ Stage1Assigner,
16
+ Stage2Assigner,
17
+ )
18
+
19
+
20
+
21
+ model = L(DeformableDETR)(
22
+ backbone=L(ResNet)(
23
+ stem=L(BasicStem)(in_channels=3, out_channels=64, norm="FrozenBN"),
24
+ stages=L(ResNet.make_default_stages)(
25
+ depth=50,
26
+ stride_in_1x1=False,
27
+ norm="FrozenBN",
28
+ ),
29
+ out_features=["res3", "res4", "res5"],
30
+ freeze_at=2,
31
+ ),
32
+ position_embedding=L(PositionEmbeddingSine)(
33
+ num_pos_feats=128,
34
+ temperature=10000,
35
+ normalize=True,
36
+ offset=-0.5,
37
+ ),
38
+ neck=L(ChannelMapper)(
39
+ input_shapes={
40
+ "res3": ShapeSpec(channels=512),
41
+ "res4": ShapeSpec(channels=1024),
42
+ "res5": ShapeSpec(channels=2048),
43
+ },
44
+ in_features=["res3", "res4", "res5"],
45
+ out_channels=256,
46
+ num_outs=5,
47
+ kernel_size=1,
48
+ norm_layer=L(nn.GroupNorm)(num_groups=32, num_channels=256),
49
+ ),
50
+ transformer=L(DeformableDetrTransformer)(
51
+ encoder=L(DeformableDetrTransformerEncoder)(
52
+ embed_dim=256,
53
+ num_heads=8,
54
+ feedforward_dim=2048,
55
+ attn_dropout=0.0,
56
+ ffn_dropout=0.0,
57
+ num_layers=6,
58
+ post_norm=False,
59
+ num_feature_levels="${..num_feature_levels}",
60
+ ),
61
+ decoder=L(DeformableDetrTransformerDecoder)(
62
+ embed_dim=256,
63
+ num_heads=8,
64
+ feedforward_dim=2048,
65
+ attn_dropout=0.0,
66
+ ffn_dropout=0.0,
67
+ num_layers=6,
68
+ return_intermediate=True,
69
+ num_feature_levels="${..num_feature_levels}",
70
+ ),
71
+ as_two_stage="${..as_two_stage}",
72
+ num_feature_levels=5,
73
+ two_stage_num_proposals="${..num_queries}",
74
+ assign_first_stage=True,
75
+ ),
76
+ embed_dim=256,
77
+ num_classes=80,
78
+ num_queries=900,
79
+ aux_loss=True,
80
+ with_box_refine=True,
81
+ as_two_stage=True,
82
+ criterion=L(DeformableCriterion)(
83
+ num_classes=80,
84
+ matcher=L(HungarianMatcher)(
85
+ cost_class=2.0,
86
+ cost_bbox=5.0,
87
+ cost_giou=2.0,
88
+ cost_class_type="focal_loss_cost",
89
+ alpha=0.25,
90
+ gamma=2.0,
91
+ ),
92
+ matcher_stage1=L(Stage1Assigner)(
93
+ t_low=0.3,
94
+ t_high=0.7,
95
+ max_k=4,
96
+ ),
97
+ matcher_stage2=L(Stage2Assigner)(
98
+ num_queries="${...num_queries}",
99
+ num_classes="${...num_classes}",
100
+ max_k=4,
101
+ ),
102
+ weight_dict={
103
+ "loss_class": 1.0,
104
+ "loss_bbox": 5.0,
105
+ "loss_giou": 2.0,
106
+ },
107
+ loss_class_type="focal_loss",
108
+ alpha=0.25,
109
+ gamma=2.0,
110
+ ),
111
+ pixel_mean=[123.675, 116.280, 103.530],
112
+ pixel_std=[58.395, 57.120, 57.375],
113
+ select_box_nums_for_evaluation=100,
114
+ input_format="RGB",
115
+ )
116
+
117
+ if model.aux_loss:
118
+ weight_dict = model.criterion.weight_dict
119
+ aux_weight_dict = {}
120
+ for i in range(model.transformer.decoder.num_layers - 1):
121
+ aux_weight_dict.update({k + f"_{i}": v for k, v in weight_dict.items()})
122
+ aux_weight_dict.update({k + "_enc": v for k, v in weight_dict.items()})
123
+ weight_dict.update(aux_weight_dict)
124
+ model.criterion.weight_dict = weight_dict
approach/ovod/APE/configs/COCO_Detection/deformable_detr/deformable_detr_r50_50ep.py ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detrex.config import get_config
2
+
3
+ from .models.deformable_detr_r50 import model
4
+
5
+ dataloader = get_config("common/data/coco_detr.py").dataloader
6
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_50ep
7
+ optimizer = get_config("common/optim.py").AdamW
8
+ train = get_config("common/train.py").train
9
+
10
+ train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
11
+ train.output_dir = "./output/deformable_detr_r50_50ep"
12
+
13
+ train.max_iter = 375000
14
+
15
+ train.eval_period = 5000
16
+
17
+ train.log_period = 20
18
+
19
+ train.checkpointer.period = 5000
20
+ train.checkpointer.max_to_keep = 2
21
+
22
+ train.clip_grad.enabled = True
23
+ train.clip_grad.params.max_norm = 0.1
24
+ train.clip_grad.params.norm_type = 2
25
+
26
+ train.device = "cuda"
27
+ model.device = train.device
28
+
29
+ optimizer.lr = 1e-4
30
+ optimizer.betas = (0.9, 0.999)
31
+ optimizer.weight_decay = 1e-4
32
+ optimizer.params.lr_factor_func = lambda module_name: 0.1 if "backbone" in module_name else 1
33
+
34
+ dataloader.train.num_workers = 16
35
+
36
+ dataloader.train.total_batch_size = 16
37
+
38
+ dataloader.evaluator.output_dir = train.output_dir
approach/ovod/APE/configs/COCO_Detection/deformable_detr/deformable_detr_r50_two_stage_50ep.py ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ from .deformable_detr_r50_50ep import dataloader, lr_multiplier, model, optimizer, train
2
+
3
+ model.with_box_refine = True
4
+ model.as_two_stage = True
5
+
6
+ train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
7
+ train.output_dir = "./output/deformable_detr_r50_two_stage_50ep"
approach/ovod/APE/configs/COCO_Detection/deformable_detr/deformable_detr_r50_with_box_refinement_50ep.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ from .deformable_detr_r50_50ep import dataloader, lr_multiplier, model, optimizer, train
2
+
3
+ model.with_box_refine = True
4
+
5
+ train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
6
+ train.output_dir = "./output/deformable_detr_with_box_refinement_50ep"
approach/ovod/APE/configs/COCO_Detection/deformable_detr/improved_deformable_detr_r50_12ep.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detrex.config import get_config
2
+
3
+ from .models.improved_deformable_detr_r50 import model
4
+
5
+ dataloader = get_config("common/data/coco_detr.py").dataloader
6
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
7
+ lr_multiplier.scheduler.milestones = [75000, 90000]
8
+ optimizer = get_config("common/optim.py").AdamW
9
+ train = get_config("common/train.py").train
10
+
11
+ train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
12
+ train.output_dir = "./output/improved_deformable_detr_r50_12ep"
13
+
14
+ train.max_iter = 90000
15
+
16
+ train.eval_period = 5000
17
+
18
+ train.log_period = 20
19
+
20
+ train.checkpointer.period = 5000
21
+ train.checkpointer.max_to_keep = 2
22
+
23
+ train.clip_grad.enabled = True
24
+ train.clip_grad.params.max_norm = 0.1
25
+ train.clip_grad.params.norm_type = 2
26
+
27
+ train.device = "cuda"
28
+ model.device = train.device
29
+
30
+ optimizer.lr = 2e-4
31
+ optimizer.betas = (0.9, 0.999)
32
+ optimizer.weight_decay = 1e-4
33
+ optimizer.params.lr_factor_func = (
34
+ lambda module_name: 0.1
35
+ if "backbone" in module_name
36
+ or "reference_points" in module_name
37
+ or "sampling_offsets" in module_name
38
+ else 1
39
+ )
40
+ optimizer.params.weight_decay_norm = None
41
+
42
+ dataloader.train.num_workers = 16
43
+
44
+ dataloader.train.total_batch_size = 16
45
+
46
+ dataloader.evaluator.output_dir = train.output_dir
approach/ovod/APE/configs/COCO_Detection/deformable_detr/improved_deformable_detr_r50_50ep.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detrex.config import get_config
2
+
3
+ from .models.improved_deformable_detr_r50 import model
4
+
5
+ dataloader = get_config("common/data/coco_detr.py").dataloader
6
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_50ep
7
+ optimizer = get_config("common/optim.py").AdamW
8
+ train = get_config("common/train.py").train
9
+
10
+ train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
11
+ train.output_dir = "./output/improved_deformable_detr_r50_50ep"
12
+
13
+ train.max_iter = 375000
14
+
15
+ train.eval_period = 5000
16
+
17
+ train.log_period = 20
18
+
19
+ train.checkpointer.period = 5000
20
+ train.checkpointer.max_to_keep = 2
21
+
22
+ train.clip_grad.enabled = True
23
+ train.clip_grad.params.max_norm = 0.1
24
+ train.clip_grad.params.norm_type = 2
25
+
26
+ train.device = "cuda"
27
+ model.device = train.device
28
+
29
+ optimizer.lr = 2e-4
30
+ optimizer.betas = (0.9, 0.999)
31
+ optimizer.weight_decay = 1e-4
32
+ optimizer.params.lr_factor_func = (
33
+ lambda module_name: 0.1
34
+ if "backbone" in module_name
35
+ or "reference_points" in module_name
36
+ or "sampling_offsets" in module_name
37
+ else 1
38
+ )
39
+ optimizer.params.weight_decay_norm = None
40
+
41
+ dataloader.train.num_workers = 16
42
+
43
+ dataloader.train.total_batch_size = 16
44
+
45
+ dataloader.evaluator.output_dir = train.output_dir
approach/ovod/APE/configs/COCO_Detection/deformable_detr/improved_deformable_detr_r50_two_stage_12ep.py ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ from .improved_deformable_detr_r50_12ep import dataloader, lr_multiplier, model, optimizer, train
2
+
3
+ model.with_box_refine = True
4
+ model.as_two_stage = True
5
+
6
+ train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
7
+ train.output_dir = "./output/improved_deformable_detr_r50_two_stage_12ep"
approach/ovod/APE/configs/COCO_Detection/deformable_detr/improved_deformable_detr_r50_two_stage_50ep.py ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ from .improved_deformable_detr_r50_50ep import dataloader, lr_multiplier, model, optimizer, train
2
+
3
+ model.with_box_refine = True
4
+ model.as_two_stage = True
5
+
6
+ train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
7
+ train.output_dir = "./output/improved_deformable_detr_r50_two_stage_50ep"
approach/ovod/APE/configs/COCO_Detection/deformable_detr/models/deformable_detr_r50.py ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch.nn as nn
2
+
3
+ from detectron2.config import LazyCall as L
4
+ from detectron2.layers import ShapeSpec
5
+ from detectron2.modeling.backbone import BasicStem, ResNet
6
+ from detrex.layers import PositionEmbeddingSine
7
+ from detrex.modeling.matcher import HungarianMatcher
8
+ from detrex.modeling.neck import ChannelMapper
9
+ from projects.deformable_detr.modeling import (
10
+ DeformableCriterion,
11
+ DeformableDETR,
12
+ DeformableDetrTransformer,
13
+ DeformableDetrTransformerDecoder,
14
+ DeformableDetrTransformerEncoder,
15
+ )
16
+
17
+ model = L(DeformableDETR)(
18
+ backbone=L(ResNet)(
19
+ stem=L(BasicStem)(in_channels=3, out_channels=64, norm="FrozenBN"),
20
+ stages=L(ResNet.make_default_stages)(
21
+ depth=50,
22
+ stride_in_1x1=False,
23
+ norm="FrozenBN",
24
+ ),
25
+ out_features=["res3", "res4", "res5"],
26
+ freeze_at=1,
27
+ ),
28
+ position_embedding=L(PositionEmbeddingSine)(
29
+ num_pos_feats=128,
30
+ temperature=10000,
31
+ normalize=True,
32
+ offset=-0.5,
33
+ ),
34
+ neck=L(ChannelMapper)(
35
+ input_shapes={
36
+ "res3": ShapeSpec(channels=512),
37
+ "res4": ShapeSpec(channels=1024),
38
+ "res5": ShapeSpec(channels=2048),
39
+ },
40
+ in_features=["res3", "res4", "res5"],
41
+ out_channels=256,
42
+ num_outs=4,
43
+ kernel_size=1,
44
+ norm_layer=L(nn.GroupNorm)(num_groups=32, num_channels=256),
45
+ ),
46
+ transformer=L(DeformableDetrTransformer)(
47
+ encoder=L(DeformableDetrTransformerEncoder)(
48
+ embed_dim=256,
49
+ num_heads=8,
50
+ feedforward_dim=1024,
51
+ attn_dropout=0.1,
52
+ ffn_dropout=0.1,
53
+ num_layers=6,
54
+ post_norm=False,
55
+ num_feature_levels="${..num_feature_levels}",
56
+ ),
57
+ decoder=L(DeformableDetrTransformerDecoder)(
58
+ embed_dim=256,
59
+ num_heads=8,
60
+ feedforward_dim=1024,
61
+ attn_dropout=0.1,
62
+ ffn_dropout=0.1,
63
+ num_layers=6,
64
+ return_intermediate=True,
65
+ num_feature_levels="${..num_feature_levels}",
66
+ ),
67
+ as_two_stage="${..as_two_stage}",
68
+ num_feature_levels=4,
69
+ two_stage_num_proposals="${..num_queries}",
70
+ ),
71
+ embed_dim=256,
72
+ num_classes=80,
73
+ num_queries=300,
74
+ aux_loss=True,
75
+ with_box_refine=False,
76
+ as_two_stage=False,
77
+ criterion=L(DeformableCriterion)(
78
+ num_classes=80,
79
+ matcher=L(HungarianMatcher)(
80
+ cost_class=2.0,
81
+ cost_bbox=5.0,
82
+ cost_giou=2.0,
83
+ cost_class_type="focal_loss_cost",
84
+ alpha=0.25,
85
+ gamma=2.0,
86
+ ),
87
+ weight_dict={
88
+ "loss_class": 1.0,
89
+ "loss_bbox": 5.0,
90
+ "loss_giou": 2.0,
91
+ },
92
+ loss_class_type="focal_loss",
93
+ alpha=0.25,
94
+ gamma=2.0,
95
+ ),
96
+ pixel_mean=[123.675, 116.280, 103.530],
97
+ pixel_std=[58.395, 57.120, 57.375],
98
+ select_box_nums_for_evaluation=300,
99
+ device="cuda",
100
+ )
101
+
102
+ if model.aux_loss:
103
+ weight_dict = model.criterion.weight_dict
104
+ aux_weight_dict = {}
105
+ for i in range(model.transformer.decoder.num_layers - 1):
106
+ aux_weight_dict.update({k + f"_{i}": v for k, v in weight_dict.items()})
107
+ aux_weight_dict.update({k + "_enc": v for k, v in weight_dict.items()})
108
+ weight_dict.update(aux_weight_dict)
109
+ model.criterion.weight_dict = weight_dict
approach/ovod/APE/configs/COCO_Detection/deformable_detr/models/improved_deformable_detr_r50.py ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch.nn as nn
2
+
3
+ from detectron2.config import LazyCall as L
4
+ from detectron2.layers import ShapeSpec
5
+ from detectron2.modeling.backbone import BasicStem, ResNet
6
+ from detrex.layers import PositionEmbeddingSine
7
+ from detrex.modeling.matcher import HungarianMatcher
8
+ from detrex.modeling.neck import ChannelMapper
9
+ from projects.deformable_detr.modeling import (
10
+ DeformableCriterion,
11
+ DeformableDETR,
12
+ DeformableDetrTransformer,
13
+ DeformableDetrTransformerDecoder,
14
+ DeformableDetrTransformerEncoder,
15
+ )
16
+
17
+ model = L(DeformableDETR)(
18
+ backbone=L(ResNet)(
19
+ stem=L(BasicStem)(in_channels=3, out_channels=64, norm="FrozenBN"),
20
+ stages=L(ResNet.make_default_stages)(
21
+ depth=50,
22
+ stride_in_1x1=False,
23
+ norm="FrozenBN",
24
+ ),
25
+ out_features=["res3", "res4", "res5"],
26
+ freeze_at=2,
27
+ ),
28
+ position_embedding=L(PositionEmbeddingSine)(
29
+ num_pos_feats=128,
30
+ temperature=10000,
31
+ normalize=True,
32
+ offset=-0.5,
33
+ ),
34
+ neck=L(ChannelMapper)(
35
+ input_shapes={
36
+ "res3": ShapeSpec(channels=512),
37
+ "res4": ShapeSpec(channels=1024),
38
+ "res5": ShapeSpec(channels=2048),
39
+ },
40
+ in_features=["res3", "res4", "res5"],
41
+ out_channels=256,
42
+ num_outs=5,
43
+ kernel_size=1,
44
+ norm_layer=L(nn.GroupNorm)(num_groups=32, num_channels=256),
45
+ ),
46
+ transformer=L(DeformableDetrTransformer)(
47
+ encoder=L(DeformableDetrTransformerEncoder)(
48
+ embed_dim=256,
49
+ num_heads=8,
50
+ feedforward_dim=2048,
51
+ attn_dropout=0.0,
52
+ ffn_dropout=0.0,
53
+ num_layers=6,
54
+ post_norm=False,
55
+ num_feature_levels="${..num_feature_levels}",
56
+ ),
57
+ decoder=L(DeformableDetrTransformerDecoder)(
58
+ embed_dim=256,
59
+ num_heads=8,
60
+ feedforward_dim=2048,
61
+ attn_dropout=0.0,
62
+ ffn_dropout=0.0,
63
+ num_layers=6,
64
+ return_intermediate=True,
65
+ num_feature_levels="${..num_feature_levels}",
66
+ ),
67
+ as_two_stage="${..as_two_stage}",
68
+ num_feature_levels=5,
69
+ two_stage_num_proposals="${..num_queries}",
70
+ ),
71
+ embed_dim=256,
72
+ num_classes=80,
73
+ num_queries=900,
74
+ aux_loss=True,
75
+ with_box_refine=False,
76
+ as_two_stage=False,
77
+ criterion=L(DeformableCriterion)(
78
+ num_classes=80,
79
+ matcher=L(HungarianMatcher)(
80
+ cost_class=2.0,
81
+ cost_bbox=5.0,
82
+ cost_giou=2.0,
83
+ cost_class_type="focal_loss_cost",
84
+ alpha=0.25,
85
+ gamma=2.0,
86
+ ),
87
+ weight_dict={
88
+ "loss_class": 1.0,
89
+ "loss_bbox": 5.0,
90
+ "loss_giou": 2.0,
91
+ },
92
+ loss_class_type="focal_loss",
93
+ alpha=0.25,
94
+ gamma=2.0,
95
+ ),
96
+ pixel_mean=[123.675, 116.280, 103.530],
97
+ pixel_std=[58.395, 57.120, 57.375],
98
+ select_box_nums_for_evaluation=300,
99
+ device="cuda",
100
+ )
101
+
102
+ if model.aux_loss:
103
+ weight_dict = model.criterion.weight_dict
104
+ aux_weight_dict = {}
105
+ for i in range(model.transformer.decoder.num_layers - 1):
106
+ aux_weight_dict.update({k + f"_{i}": v for k, v in weight_dict.items()})
107
+ aux_weight_dict.update({k + "_enc": v for k, v in weight_dict.items()})
108
+ weight_dict.update(aux_weight_dict)
109
+ model.criterion.weight_dict = weight_dict
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_r50_12ep.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from detrex.config import get_config
3
+ from ape.modeling.text import EVA01CLIP
4
+
5
+ from ...common.data.coco_instance import dataloader
6
+ from .models.ape_deta_r50 import model
7
+
8
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
9
+ lr_multiplier.scheduler.milestones = [75000, 90000]
10
+ optimizer = get_config("common/optim.py").AdamW
11
+ train = get_config("common/train.py").train
12
+
13
+ train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
14
+ train.init_checkpoint = "models/torchvision/R-50.pkl"
15
+
16
+ train.max_iter = 90000
17
+
18
+ train.eval_period = 5000
19
+
20
+ train.log_period = 20
21
+
22
+ train.checkpointer.period = 5000
23
+ train.checkpointer.max_to_keep = 2
24
+
25
+ train.clip_grad.enabled = True
26
+ train.clip_grad.params.max_norm = 0.1
27
+ train.clip_grad.params.norm_type = 2
28
+
29
+ train.device = "cuda"
30
+
31
+ optimizer.lr = 2e-4
32
+ optimizer.betas = (0.9, 0.999)
33
+ optimizer.weight_decay = 1e-4
34
+ optimizer.params.lr_factor_func = (
35
+ lambda module_name: 0.1
36
+ if "backbone" in module_name
37
+ or "reference_points" in module_name
38
+ or "sampling_offsets" in module_name
39
+ else 1
40
+ )
41
+ optimizer.params.weight_decay_norm = None
42
+
43
+ dataloader.train.num_workers = 16
44
+
45
+ dataloader.train.total_batch_size = 16
46
+
47
+ dataloader.train.mapper.use_instance_mask = True
48
+
49
+ train.amp.enabled = True
50
+ train.ddp.fp16_compression = True
51
+
52
+ model.model_vision.dataset_prompts = ["name"]
53
+ model.model_vision.dataset_names = ["coco_2017"]
54
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
55
+
56
+ train.output_dir = "output/" + __file__[:-3]
57
+
58
+ model.model_language = L(EVA01CLIP)(
59
+ clip_model="EVA_CLIP_g_14_X", cache_dir="models/BAAI/EVA/eva_clip_psz14.pt"
60
+ )
61
+ model.model_vision.embed_dim_language = 1024
62
+ model.model_vision.text_feature_reduce_type = "last"
63
+ model.model_vision.text_feature_reduce_before_fusion = True
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_r50_vlf_12ep.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from ape.layers import VisionLanguageFusion
3
+ from ape.modeling.ape_deta import (
4
+ DeformableDETRSegmVL,
5
+ DeformableDetrTransformerDecoderVL,
6
+ DeformableDetrTransformerEncoderVL,
7
+ DeformableDetrTransformerVL,
8
+ )
9
+
10
+ from .ape_deta_r50_12ep import dataloader, lr_multiplier, model, optimizer, train
11
+
12
+ model.model_vision.update(
13
+ _target_=DeformableDETRSegmVL,
14
+ )
15
+ model.model_vision.transformer.update(
16
+ _target_=DeformableDetrTransformerVL,
17
+ )
18
+ model.model_vision.transformer.encoder.update(
19
+ _target_=DeformableDetrTransformerEncoderVL,
20
+ )
21
+ model.model_vision.transformer.decoder.update(
22
+ _target_=DeformableDetrTransformerDecoderVL,
23
+ )
24
+
25
+ model.model_vision.transformer.encoder.vl_layer = L(VisionLanguageFusion)(
26
+ v_dim="${....embed_dim}",
27
+ l_dim="${....embed_dim_language}",
28
+ embed_dim=2048,
29
+ num_heads=8,
30
+ dropout=0.1,
31
+ drop_path=0.0,
32
+ init_values=1.0 / 6,
33
+ stable_softmax_2d=True,
34
+ clamp_min_for_underflow=True,
35
+ clamp_max_for_overflow=True,
36
+ use_checkpoint=True,
37
+ )
38
+
39
+ model.model_vision.text_feature_bank = True
40
+ model.model_vision.text_feature_reduce_before_fusion = True
41
+ model.model_vision.text_feature_batch_repeat = True
42
+ model.model_vision.expression_cumulative_gt_class = True
43
+ model.model_vision.name_prompt_fusion_type = "zero"
44
+
45
+ train.output_dir = "output/" + __file__[:-3]
46
+ model.model_vision.vis_period = 12800
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vite_eva02_clip_lsj1536_cp_64x90k.py ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from detectron2.layers import ShapeSpec
3
+ from detrex.config import get_config
4
+ from ape.modeling.backbone.vit import get_vit_lr_decay_rate
5
+ from ape.modeling.text import EVA02CLIP
6
+
7
+ from .....detectron2.configs.common.data.constants import constants
8
+ from ...common.backbone.vite_eva02_clip_1536 import backbone
9
+ from ...common.data.coco_instance_lsj1536_cp import dataloader
10
+ from .models.ape_deta_r50 import model
11
+
12
+ model.model_vision.pixel_mean = constants.imagenet_rgb256_mean
13
+ model.model_vision.pixel_std = constants.imagenet_rgb256_std
14
+ model.model_vision.input_format = "RGB"
15
+
16
+ model.model_vision.backbone = backbone
17
+
18
+ model.model_vision.neck = None
19
+
20
+ model.model_vision.mask_in_features = ["p2"]
21
+ model.model_vision.input_shapes = {
22
+ "p2": ShapeSpec(channels=256),
23
+ "p3": ShapeSpec(channels=256),
24
+ "p4": ShapeSpec(channels=256),
25
+ "p5": ShapeSpec(channels=256),
26
+ "p6": ShapeSpec(channels=256),
27
+ }
28
+
29
+ optimizer = get_config("common/optim.py").AdamW
30
+ optimizer.params.lr_factor_func = (
31
+ lambda module_name: 0.1
32
+ if "reference_points" in module_name or "sampling_offsets" in module_name
33
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.8, num_layers=64)
34
+ if "backbone.net" in module_name
35
+ else 1
36
+ )
37
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
38
+ optimizer.params.weight_decay_norm = None
39
+
40
+ optimizer.lr = 2e-4
41
+ optimizer.betas = (0.9, 0.999)
42
+ optimizer.weight_decay = 1e-4
43
+
44
+ train = get_config("common/train.py").train
45
+ train.max_iter = 90000
46
+ train.eval_period = 5000
47
+ train.log_period = 20
48
+
49
+ train.checkpointer.period = 5000
50
+ train.checkpointer.max_to_keep = 2
51
+
52
+ train.clip_grad.enabled = True
53
+ train.clip_grad.params.max_norm = 0.1
54
+ train.clip_grad.params.norm_type = 2
55
+
56
+ train.device = "cuda"
57
+
58
+ train.init_checkpoint = (
59
+ "models/QuanSun/EVA-CLIP/EVA02_CLIP_E_psz14to16_plus_s9B.pt?matching_heuristics=True"
60
+ )
61
+
62
+ train.amp.enabled = True
63
+ train.ddp.fp16_compression = True
64
+
65
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
66
+ lr_multiplier.scheduler.milestones = [75000, 90000]
67
+ lr_multiplier.warmup_length = 1000 / train.max_iter
68
+
69
+ dataloader.train.num_workers = 8
70
+ dataloader.train.total_batch_size = 64
71
+ dataloader.train.mapper.image_format = "RGB"
72
+ dataloader.train.mapper.use_instance_mask = True
73
+
74
+ model.model_vision.dataset_prompts = ["name"]
75
+ model.model_vision.dataset_names = ["coco_2017"]
76
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
77
+
78
+ train.output_dir = "output/" + __file__[:-3]
79
+
80
+ model.model_language = L(EVA02CLIP)(
81
+ clip_model="EVA02-CLIP-bigE-14-plus",
82
+ cache_dir="models/QuanSun/EVA-CLIP/EVA02_CLIP_E_psz14_plus_s9B.pt",
83
+ dtype="float16",
84
+ )
85
+ model.model_vision.embed_dim_language = 1024
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitg_eva01_clip_lsj1536_cp_128x45k.py ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from detectron2.layers import ShapeSpec
3
+ from detrex.config import get_config
4
+ from ape.modeling.backbone.vit import get_vit_lr_decay_rate
5
+ from ape.modeling.text import EVA02CLIP
6
+
7
+ from .....detectron2.configs.common.data.constants import constants
8
+ from ...common.backbone.vitg_eva01_clip_1536 import backbone
9
+ from ...common.data.coco_instance_lsj1536_cp import dataloader
10
+ from .models.ape_deta_r50 import model
11
+
12
+ model.model_vision.pixel_mean = constants.imagenet_rgb256_mean
13
+ model.model_vision.pixel_std = constants.imagenet_rgb256_std
14
+ model.model_vision.input_format = "RGB"
15
+
16
+ model.model_vision.backbone = backbone
17
+
18
+ model.model_vision.neck = None
19
+
20
+ model.model_vision.mask_in_features = ["p2"]
21
+ model.model_vision.input_shapes = {
22
+ "p2": ShapeSpec(channels=256),
23
+ "p3": ShapeSpec(channels=256),
24
+ "p4": ShapeSpec(channels=256),
25
+ "p5": ShapeSpec(channels=256),
26
+ "p6": ShapeSpec(channels=256),
27
+ }
28
+
29
+ optimizer = get_config("common/optim.py").AdamW
30
+ optimizer.params.lr_factor_func = (
31
+ lambda module_name: 0.1
32
+ if "reference_points" in module_name or "sampling_offsets" in module_name
33
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.9, num_layers=40)
34
+ if "backbone.net" in module_name
35
+ else 1
36
+ )
37
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
38
+ optimizer.params.weight_decay_norm = None
39
+
40
+ optimizer.lr = 2e-4
41
+ optimizer.betas = (0.9, 0.999)
42
+ optimizer.weight_decay = 1e-4
43
+
44
+ train = get_config("common/train.py").train
45
+ train.max_iter = 45000
46
+ train.eval_period = 5000
47
+ train.log_period = 20
48
+
49
+ train.checkpointer.period = 2500
50
+ train.checkpointer.max_to_keep = 2
51
+
52
+ train.clip_grad.enabled = True
53
+ train.clip_grad.params.max_norm = 0.1
54
+ train.clip_grad.params.norm_type = 2
55
+
56
+ train.device = "cuda"
57
+
58
+ train.init_checkpoint = (
59
+ "models/QuanSun/EVA-CLIP/EVA01_CLIP_g_14_plus_psz14to16_s11B.pt?matching_heuristics=True"
60
+ )
61
+
62
+ train.amp.enabled = True
63
+ train.ddp.fp16_compression = True
64
+
65
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
66
+ lr_multiplier.scheduler.milestones = [37500, 45000]
67
+ lr_multiplier.warmup_length = 1000 / train.max_iter
68
+
69
+ dataloader.train.num_workers = 16
70
+ dataloader.train.total_batch_size = 128
71
+ dataloader.train.mapper.image_format = "RGB"
72
+ dataloader.train.mapper.use_instance_mask = True
73
+
74
+ model.model_vision.dataset_prompts = ["name"]
75
+ model.model_vision.dataset_names = ["coco_2017"]
76
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
77
+
78
+ train.output_dir = "output/" + __file__[:-3]
79
+
80
+ model.model_language = L(EVA02CLIP)(
81
+ clip_model="EVA01-CLIP-g-14-plus",
82
+ cache_dir="models/QuanSun/EVA-CLIP/EVA01_CLIP_g_14_plus_psz14_s11B.pt",
83
+ )
84
+ model.model_vision.embed_dim_language = 1024
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitg_eva01_clip_lsj1536_cp_64x90k.py ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from detectron2.layers import ShapeSpec
3
+ from detrex.config import get_config
4
+ from ape.modeling.backbone.vit import get_vit_lr_decay_rate
5
+ from ape.modeling.text import EVA02CLIP
6
+
7
+ from .....detectron2.configs.common.data.constants import constants
8
+ from ...common.backbone.vitg_eva01_clip_1536 import backbone
9
+ from ...common.data.coco_instance_lsj1536_cp import dataloader
10
+ from .models.ape_deta_r50 import model
11
+
12
+ model.model_vision.pixel_mean = constants.imagenet_rgb256_mean
13
+ model.model_vision.pixel_std = constants.imagenet_rgb256_std
14
+ model.model_vision.input_format = "RGB"
15
+
16
+ model.model_vision.backbone = backbone
17
+
18
+ model.model_vision.neck = None
19
+
20
+ model.model_vision.mask_in_features = ["p2"]
21
+ model.model_vision.input_shapes = {
22
+ "p2": ShapeSpec(channels=256),
23
+ "p3": ShapeSpec(channels=256),
24
+ "p4": ShapeSpec(channels=256),
25
+ "p5": ShapeSpec(channels=256),
26
+ "p6": ShapeSpec(channels=256),
27
+ }
28
+
29
+ optimizer = get_config("common/optim.py").AdamW
30
+ optimizer.params.lr_factor_func = (
31
+ lambda module_name: 0.1
32
+ if "reference_points" in module_name or "sampling_offsets" in module_name
33
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.9, num_layers=40)
34
+ if "backbone.net" in module_name
35
+ else 1
36
+ )
37
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
38
+ optimizer.params.weight_decay_norm = None
39
+
40
+ optimizer.lr = 2e-4
41
+ optimizer.betas = (0.9, 0.999)
42
+ optimizer.weight_decay = 1e-4
43
+
44
+ train = get_config("common/train.py").train
45
+ train.max_iter = 90000
46
+ train.eval_period = 5000
47
+ train.log_period = 20
48
+
49
+ train.checkpointer.period = 5000
50
+ train.checkpointer.max_to_keep = 2
51
+
52
+ train.clip_grad.enabled = True
53
+ train.clip_grad.params.max_norm = 0.1
54
+ train.clip_grad.params.norm_type = 2
55
+
56
+ train.device = "cuda"
57
+
58
+ train.init_checkpoint = (
59
+ "models/QuanSun/EVA-CLIP/EVA01_CLIP_g_14_plus_psz14to16_s11B.pt?matching_heuristics=True"
60
+ )
61
+
62
+ train.amp.enabled = True
63
+ train.ddp.fp16_compression = True
64
+
65
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
66
+ lr_multiplier.scheduler.milestones = [75000, 90000]
67
+ lr_multiplier.warmup_length = 1000 / train.max_iter
68
+
69
+ dataloader.train.num_workers = 16
70
+ dataloader.train.total_batch_size = 64
71
+ dataloader.train.mapper.image_format = "RGB"
72
+ dataloader.train.mapper.use_instance_mask = True
73
+
74
+ model.model_vision.dataset_prompts = ["name"]
75
+ model.model_vision.dataset_names = ["coco_2017"]
76
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
77
+
78
+ train.output_dir = "output/" + __file__[:-3]
79
+
80
+ model.model_language = L(EVA02CLIP)(
81
+ clip_model="EVA01-CLIP-g-14-plus",
82
+ cache_dir="models/QuanSun/EVA-CLIP/EVA01_CLIP_g_14_plus_psz14_s11B.pt",
83
+ )
84
+ model.model_vision.embed_dim_language = 1024
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitg_eva01_lsj1536_cp_64x90k.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from detectron2.layers import ShapeSpec
3
+ from detrex.config import get_config
4
+ from ape.modeling.backbone.vit import get_vit_lr_decay_rate
5
+ from ape.modeling.text import EVA01CLIP
6
+
7
+ from .....detectron2.configs.common.data.constants import constants
8
+ from ...common.backbone.vitg_eva01_1536 import backbone
9
+ from ...common.data.coco_instance_lsj1536_cp import dataloader
10
+ from .models.ape_deta_r50 import model
11
+
12
+ model.model_vision.pixel_mean = constants.imagenet_rgb256_mean
13
+ model.model_vision.pixel_std = constants.imagenet_rgb256_std
14
+ model.model_vision.input_format = "RGB"
15
+
16
+ model.model_vision.backbone = backbone
17
+
18
+ model.model_vision.neck = None
19
+
20
+ model.model_vision.mask_in_features = ["p2"]
21
+ model.model_vision.input_shapes = {
22
+ "p2": ShapeSpec(channels=256),
23
+ "p3": ShapeSpec(channels=256),
24
+ "p4": ShapeSpec(channels=256),
25
+ "p5": ShapeSpec(channels=256),
26
+ "p6": ShapeSpec(channels=256),
27
+ }
28
+
29
+ optimizer = get_config("common/optim.py").AdamW
30
+ optimizer.params.lr_factor_func = (
31
+ lambda module_name: 0.1
32
+ if "reference_points" in module_name or "sampling_offsets" in module_name
33
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.9, num_layers=40)
34
+ if "backbone.net" in module_name
35
+ else 1
36
+ )
37
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
38
+ optimizer.params.weight_decay_norm = None
39
+
40
+ optimizer.lr = 2e-4
41
+ optimizer.betas = (0.9, 0.999)
42
+ optimizer.weight_decay = 1e-4
43
+
44
+ train = get_config("common/train.py").train
45
+ train.max_iter = 90000
46
+ train.eval_period = 5000
47
+ train.log_period = 20
48
+
49
+ train.checkpointer.period = 5000
50
+ train.checkpointer.max_to_keep = 2
51
+
52
+ train.clip_grad.enabled = True
53
+ train.clip_grad.params.max_norm = 0.1
54
+ train.clip_grad.params.norm_type = 2
55
+
56
+ train.device = "cuda"
57
+
58
+ train.init_checkpoint = "models/BAAI/EVA/eva_o365.pth?matching_heuristics=True"
59
+
60
+ train.amp.enabled = True
61
+ train.ddp.fp16_compression = True
62
+
63
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
64
+ lr_multiplier.scheduler.milestones = [75000, 90000]
65
+ lr_multiplier.warmup_length = 1000 / train.max_iter
66
+
67
+ dataloader.train.num_workers = 16
68
+ dataloader.train.total_batch_size = 64
69
+ dataloader.train.mapper.image_format = "RGB"
70
+ dataloader.train.mapper.use_instance_mask = True
71
+
72
+ model.model_vision.dataset_prompts = ["name"]
73
+ model.model_vision.dataset_names = ["coco_2017"]
74
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
75
+
76
+ train.output_dir = "output/" + __file__[:-3]
77
+
78
+ model.model_language = L(EVA01CLIP)(
79
+ clip_model="EVA_CLIP_g_14_X", cache_dir="models/BAAI/EVA/eva_clip_psz14.pt"
80
+ )
81
+ model.model_vision.embed_dim_language = 1024
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_clip_lsj1024_cp_12ep.py ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from detectron2.layers import ShapeSpec
3
+ from detectron2.model_zoo import get_config as get_config_d2
4
+ from detrex.config import get_config as get_config_detrex
5
+ from ape.modeling.backbone.vit import get_vit_lr_decay_rate
6
+
7
+ from ape.modeling.text import EVA02CLIP
8
+
9
+ from ...common.backbone.vitl_eva02_clip import backbone
10
+ from ...common.data.coco_instance_lsj1024_cp import dataloader
11
+ from .models.ape_deta_r50 import model
12
+
13
+ constants = get_config_d2("common/data/constants.py").constants
14
+
15
+ model.model_vision.pixel_mean = constants.imagenet_rgb256_mean
16
+ model.model_vision.pixel_std = constants.imagenet_rgb256_std
17
+ model.model_vision.input_format = "RGB"
18
+
19
+ model.model_vision.backbone = backbone
20
+
21
+ model.model_vision.neck.input_shapes = {
22
+ "p2": ShapeSpec(channels=256),
23
+ "p3": ShapeSpec(channels=256),
24
+ "p4": ShapeSpec(channels=256),
25
+ "p5": ShapeSpec(channels=256),
26
+ "p6": ShapeSpec(channels=256),
27
+ }
28
+ model.model_vision.neck.in_features = ["p2", "p3", "p4", "p5", "p6"]
29
+
30
+ model.model_vision.mask_in_features = ["p2"]
31
+ model.model_vision.input_shapes = {
32
+ "p2": ShapeSpec(channels=256),
33
+ "p3": ShapeSpec(channels=256),
34
+ "p4": ShapeSpec(channels=256),
35
+ "p5": ShapeSpec(channels=256),
36
+ "p6": ShapeSpec(channels=256),
37
+ }
38
+
39
+ optimizer = get_config_detrex("common/optim.py").AdamW
40
+ optimizer.params.lr_factor_func = (
41
+ lambda module_name: 0.1
42
+ if "reference_points" in module_name or "sampling_offsets" in module_name
43
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.8, num_layers=24)
44
+ if "backbone.net" in module_name
45
+ else 1
46
+ )
47
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
48
+ optimizer.params.weight_decay_norm = None
49
+
50
+ optimizer.lr = 2e-4
51
+ optimizer.betas = (0.9, 0.999)
52
+ optimizer.weight_decay = 1e-4
53
+
54
+ train = get_config_detrex("common/train.py").train
55
+ train.max_iter = 90000
56
+ train.eval_period = 5000
57
+ train.log_period = 20
58
+
59
+ train.checkpointer.period = 5000
60
+ train.checkpointer.max_to_keep = 2
61
+
62
+ train.clip_grad.enabled = True
63
+ train.clip_grad.params.max_norm = 0.1
64
+ train.clip_grad.params.norm_type = 2
65
+
66
+ train.device = "cuda"
67
+
68
+ train.init_checkpoint = (
69
+ "models/QuanSun/EVA-CLIP/EVA02_CLIP_L_336_psz14to16_s6B.pt?matching_heuristics=True"
70
+ )
71
+
72
+ train.amp.enabled = True
73
+ train.ddp.fp16_compression = True
74
+
75
+ lr_multiplier = get_config_detrex("common/coco_schedule.py").lr_multiplier_12ep
76
+ lr_multiplier.scheduler.milestones = [75000, 90000]
77
+ lr_multiplier.warmup_length = 1000 / train.max_iter
78
+
79
+ dataloader.train.num_workers = 16
80
+ dataloader.train.total_batch_size = 16
81
+ dataloader.train.mapper.image_format = "RGB"
82
+ dataloader.train.mapper.use_instance_mask = True
83
+
84
+ model.model_vision.dataset_prompts = ["name"]
85
+ model.model_vision.dataset_names = ["coco_2017"]
86
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
87
+
88
+ train.output_dir = "output/" + __file__[:-3]
89
+
90
+ model.model_language = L(EVA02CLIP)(
91
+ clip_model="EVA02-CLIP-bigE-14-plus",
92
+ cache_dir="models/QuanSun/EVA-CLIP/EVA02_CLIP_E_psz14_plus_s9B.pt",
93
+ dtype="float16",
94
+ )
95
+ model.model_vision.embed_dim_language = 1024
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_clip_lsj1536_cp_128x45k.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .ape_deta_vitl_eva02_clip_lsj1536_cp_64x90k import (
2
+ dataloader,
3
+ lr_multiplier,
4
+ model,
5
+ optimizer,
6
+ train,
7
+ )
8
+
9
+ train.max_iter = 45000
10
+
11
+ train.eval_period = 2500
12
+
13
+ train.checkpointer.period = 2500
14
+
15
+ lr_multiplier.scheduler.milestones = [37500, 45000]
16
+
17
+ dataloader.train.total_batch_size = 128
18
+
19
+ train.output_dir = "output/" + __file__[:-3]
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_clip_lsj1536_cp_64x90k.py ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from detectron2.layers import ShapeSpec
3
+ from detrex.config import get_config
4
+ from ape.modeling.backbone.vit import get_vit_lr_decay_rate
5
+
6
+ from ape.modeling.text import EVA02CLIP
7
+
8
+ from .....detectron2.configs.common.data.constants import constants
9
+ from ...common.backbone.vitl_eva02_clip_1536 import backbone
10
+ from ...common.data.coco_instance_lsj1536_cp import dataloader
11
+ from .models.ape_deta_r50 import model
12
+
13
+ model.model_vision.pixel_mean = constants.imagenet_rgb256_mean
14
+ model.model_vision.pixel_std = constants.imagenet_rgb256_std
15
+ model.model_vision.input_format = "RGB"
16
+
17
+ model.model_vision.backbone = backbone
18
+
19
+ model.model_vision.neck.input_shapes = {
20
+ "p2": ShapeSpec(channels=256),
21
+ "p3": ShapeSpec(channels=256),
22
+ "p4": ShapeSpec(channels=256),
23
+ "p5": ShapeSpec(channels=256),
24
+ "p6": ShapeSpec(channels=256),
25
+ }
26
+ model.model_vision.neck.in_features = ["p2", "p3", "p4", "p5", "p6"]
27
+
28
+ model.model_vision.mask_in_features = ["p2"]
29
+ model.model_vision.input_shapes = {
30
+ "p2": ShapeSpec(channels=256),
31
+ "p3": ShapeSpec(channels=256),
32
+ "p4": ShapeSpec(channels=256),
33
+ "p5": ShapeSpec(channels=256),
34
+ "p6": ShapeSpec(channels=256),
35
+ }
36
+
37
+ optimizer = get_config("common/optim.py").AdamW
38
+ optimizer.params.lr_factor_func = (
39
+ lambda module_name: 0.1
40
+ if "reference_points" in module_name or "sampling_offsets" in module_name
41
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.8, num_layers=24)
42
+ if "backbone.net" in module_name
43
+ else 1
44
+ )
45
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
46
+ optimizer.params.weight_decay_norm = None
47
+
48
+ optimizer.lr = 2e-4
49
+ optimizer.betas = (0.9, 0.999)
50
+ optimizer.weight_decay = 1e-4
51
+
52
+ train = get_config("common/train.py").train
53
+ train.max_iter = 90000
54
+ train.eval_period = 5000
55
+ train.log_period = 20
56
+
57
+ train.checkpointer.period = 5000
58
+ train.checkpointer.max_to_keep = 2
59
+
60
+ train.clip_grad.enabled = True
61
+ train.clip_grad.params.max_norm = 0.1
62
+ train.clip_grad.params.norm_type = 2
63
+
64
+ train.device = "cuda"
65
+
66
+ train.init_checkpoint = (
67
+ "models/QuanSun/EVA-CLIP/EVA02_CLIP_L_336_psz14to16_s6B.pt?matching_heuristics=True"
68
+ )
69
+
70
+ train.amp.enabled = True
71
+ train.ddp.fp16_compression = True
72
+
73
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
74
+ lr_multiplier.scheduler.milestones = [75000, 90000]
75
+ lr_multiplier.warmup_length = 1000 / train.max_iter
76
+
77
+ dataloader.train.num_workers = 16
78
+ dataloader.train.total_batch_size = 64
79
+ dataloader.train.mapper.image_format = "RGB"
80
+ dataloader.train.mapper.use_instance_mask = True
81
+
82
+ model.model_vision.dataset_prompts = ["name"]
83
+ model.model_vision.dataset_names = ["coco_2017"]
84
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
85
+
86
+ train.output_dir = "output/" + __file__[:-3]
87
+
88
+ model.model_language = L(EVA02CLIP)(
89
+ clip_model="EVA02-CLIP-bigE-14-plus",
90
+ cache_dir="models/QuanSun/EVA-CLIP/EVA02_CLIP_E_psz14_plus_s9B.pt",
91
+ )
92
+ model.model_vision.embed_dim_language = 1024
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_clip_vlf_lsj1024_cp_12ep.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from ape.layers import VisionLanguageFusion
3
+ from ape.modeling.ape_deta import (
4
+ DeformableDETRSegmVL,
5
+ DeformableDetrTransformerDecoderVL,
6
+ DeformableDetrTransformerEncoderVL,
7
+ DeformableDetrTransformerVL,
8
+ )
9
+
10
+ from .ape_deta_vitl_eva02_clip_lsj1024_cp_12ep import (
11
+ dataloader,
12
+ lr_multiplier,
13
+ model,
14
+ optimizer,
15
+ train,
16
+ )
17
+
18
+ model.model_vision.update(
19
+ _target_=DeformableDETRSegmVL,
20
+ )
21
+ model.model_vision.transformer.update(
22
+ _target_=DeformableDetrTransformerVL,
23
+ )
24
+ model.model_vision.transformer.encoder.update(
25
+ _target_=DeformableDetrTransformerEncoderVL,
26
+ )
27
+ model.model_vision.transformer.decoder.update(
28
+ _target_=DeformableDetrTransformerDecoderVL,
29
+ )
30
+
31
+ model.model_vision.transformer.encoder.vl_layer = L(VisionLanguageFusion)(
32
+ v_dim="${....embed_dim}",
33
+ l_dim="${....embed_dim_language}",
34
+ embed_dim=2048,
35
+ num_heads=8,
36
+ dropout=0.1,
37
+ drop_path=0.0,
38
+ init_values=1.0 / 6,
39
+ stable_softmax_2d=True,
40
+ clamp_min_for_underflow=True,
41
+ clamp_max_for_overflow=True,
42
+ use_checkpoint=True,
43
+ )
44
+
45
+ model.model_vision.text_feature_bank = True
46
+ model.model_vision.text_feature_reduce_before_fusion = True
47
+ model.model_vision.text_feature_batch_repeat = True
48
+ model.model_vision.expression_cumulative_gt_class = True
49
+ model.model_vision.name_prompt_fusion_type = "zero"
50
+
51
+ train.output_dir = "output/" + __file__[:-3]
52
+ model.model_vision.vis_period = 12800
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1024_cp_12ep.py ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from detectron2.layers import ShapeSpec
3
+
4
+ from detectron2.model_zoo import get_config as get_config_d2
5
+ from detrex.config import get_config
6
+ from ape.modeling.backbone.vit import get_vit_lr_decay_rate
7
+ from ape.modeling.text import EVA01CLIP
8
+
9
+ from ...common.backbone.vitl_eva02 import backbone
10
+ from ...common.data.coco_instance_lsj1024_cp import dataloader
11
+ from .models.ape_deta_r50 import model
12
+
13
+ constants = get_config_d2("common/data/constants.py").constants
14
+
15
+ model.model_vision.pixel_mean = constants.imagenet_rgb256_mean
16
+ model.model_vision.pixel_std = constants.imagenet_rgb256_std
17
+ model.model_vision.input_format = "RGB"
18
+
19
+ model.model_vision.backbone = backbone
20
+
21
+ model.model_vision.neck = None
22
+
23
+ model.model_vision.mask_in_features = ["p2"]
24
+ model.model_vision.input_shapes = {
25
+ "p2": ShapeSpec(channels=256),
26
+ "p3": ShapeSpec(channels=256),
27
+ "p4": ShapeSpec(channels=256),
28
+ "p5": ShapeSpec(channels=256),
29
+ "p6": ShapeSpec(channels=256),
30
+ }
31
+
32
+ optimizer = get_config("common/optim.py").AdamW
33
+ optimizer.params.lr_factor_func = (
34
+ lambda module_name: 0.1
35
+ if "reference_points" in module_name or "sampling_offsets" in module_name
36
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.8, num_layers=24)
37
+ if "backbone.net" in module_name
38
+ else 1
39
+ )
40
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
41
+ optimizer.params.weight_decay_norm = None
42
+
43
+ optimizer.lr = 2e-4
44
+ optimizer.betas = (0.9, 0.999)
45
+ optimizer.weight_decay = 1e-4
46
+
47
+ train = get_config("common/train.py").train
48
+ train.max_iter = 90000
49
+ train.eval_period = 5000
50
+ train.log_period = 20
51
+
52
+ train.checkpointer.period = 5000
53
+ train.checkpointer.max_to_keep = 2
54
+
55
+ train.clip_grad.enabled = True
56
+ train.clip_grad.params.max_norm = 0.1
57
+ train.clip_grad.params.norm_type = 2
58
+
59
+ train.device = "cuda"
60
+
61
+ train.init_checkpoint = (
62
+ "models/Yuxin-CV/EVA-02/eva02/pt/eva02_L_pt_in21k_p14to16.pt?matching_heuristics=True"
63
+ )
64
+
65
+ train.amp.enabled = True
66
+ train.ddp.fp16_compression = True
67
+
68
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
69
+ lr_multiplier.scheduler.milestones = [75000, 90000]
70
+ lr_multiplier.warmup_length = 1000 / train.max_iter
71
+
72
+ dataloader.train.num_workers = 16
73
+ dataloader.train.total_batch_size = 16
74
+ dataloader.train.mapper.image_format = "RGB"
75
+ dataloader.train.mapper.use_instance_mask = True
76
+
77
+ model.model_vision.dataset_prompts = ["name"]
78
+ model.model_vision.dataset_names = ["coco_2017"]
79
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
80
+
81
+ train.output_dir = "output/" + __file__[:-3]
82
+
83
+ model.model_language = L(EVA01CLIP)(
84
+ clip_model="EVA_CLIP_g_14_X", cache_dir="models/BAAI/EVA/eva_clip_psz14.pt"
85
+ )
86
+ model.model_vision.embed_dim_language = 1024
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1536_cp_128x90k.py ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .ape_deta_vitl_eva02_lsj1536_cp_64x90k import (
2
+ dataloader,
3
+ lr_multiplier,
4
+ model,
5
+ optimizer,
6
+ train,
7
+ )
8
+
9
+ dataloader.train.total_batch_size = 128
10
+
11
+ train.output_dir = "output/" + __file__[:-3]
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1536_cp_12ep.py ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from detectron2.layers import ShapeSpec
3
+ from detrex.config import get_config
4
+ from ape.modeling.backbone.vit import get_vit_lr_decay_rate
5
+ from ape.modeling.text import EVA01CLIP
6
+
7
+ from .....detectron2.configs.common.data.constants import constants
8
+ from ...common.backbone.vitl_eva02_1536 import backbone
9
+ from ...common.data.coco_instance_lsj1536_cp import dataloader
10
+ from .models.ape_deta_r50 import model
11
+
12
+ model.model_vision.pixel_mean = constants.imagenet_rgb256_mean
13
+ model.model_vision.pixel_std = constants.imagenet_rgb256_std
14
+ model.model_vision.input_format = "RGB"
15
+
16
+ model.model_vision.backbone = backbone
17
+
18
+ model.model_vision.neck = None
19
+
20
+ model.model_vision.mask_in_features = ["p2"]
21
+ model.model_vision.input_shapes = {
22
+ "p2": ShapeSpec(channels=256),
23
+ "p3": ShapeSpec(channels=256),
24
+ "p4": ShapeSpec(channels=256),
25
+ "p5": ShapeSpec(channels=256),
26
+ "p6": ShapeSpec(channels=256),
27
+ }
28
+
29
+ optimizer = get_config("common/optim.py").AdamW
30
+ optimizer.params.lr_factor_func = (
31
+ lambda module_name: 0.1
32
+ if "reference_points" in module_name or "sampling_offsets" in module_name
33
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.8, num_layers=24)
34
+ if "backbone.net" in module_name
35
+ else 1
36
+ )
37
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
38
+ optimizer.params.weight_decay_norm = None
39
+
40
+ optimizer.lr = 2e-4
41
+ optimizer.betas = (0.9, 0.999)
42
+ optimizer.weight_decay = 1e-4
43
+
44
+ train = get_config("common/train.py").train
45
+ train.max_iter = 90000
46
+ train.eval_period = 5000
47
+ train.log_period = 20
48
+
49
+ train.checkpointer.period = 5000
50
+ train.checkpointer.max_to_keep = 2
51
+
52
+ train.clip_grad.enabled = True
53
+ train.clip_grad.params.max_norm = 0.1
54
+ train.clip_grad.params.norm_type = 2
55
+
56
+ train.device = "cuda"
57
+
58
+ train.init_checkpoint = (
59
+ "models/Yuxin-CV/EVA-02/eva02/pt/eva02_L_pt_in21k_p14to16.pt?matching_heuristics=True"
60
+ )
61
+
62
+ train.amp.enabled = True
63
+ train.ddp.fp16_compression = True
64
+
65
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
66
+ lr_multiplier.scheduler.milestones = [75000, 90000]
67
+ lr_multiplier.warmup_length = 1000 / train.max_iter
68
+
69
+ dataloader.train.num_workers = 16
70
+ dataloader.train.total_batch_size = 16
71
+ dataloader.train.mapper.image_format = "RGB"
72
+ dataloader.train.mapper.use_instance_mask = True
73
+
74
+ model.model_vision.dataset_prompts = ["name"]
75
+ model.model_vision.dataset_names = ["coco_2017"]
76
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
77
+
78
+ train.output_dir = "output/" + __file__[:-3]
79
+
80
+ model.model_language = L(EVA01CLIP)(
81
+ clip_model="EVA_CLIP_g_14_X", cache_dir="models/BAAI/EVA/eva_clip_psz14.pt"
82
+ )
83
+ model.model_vision.embed_dim_language = 1024
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_lsj1536_cp_64x90k.py ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from detectron2.layers import ShapeSpec
3
+ from detrex.config import get_config
4
+ from ape.modeling.backbone.vit import get_vit_lr_decay_rate
5
+ from ape.modeling.text import EVA01CLIP
6
+
7
+ from .....detectron2.configs.common.data.constants import constants
8
+ from ...common.backbone.vitl_eva02_1536 import backbone
9
+ from ...common.data.coco_instance_lsj1536_cp import dataloader
10
+ from .models.ape_deta_r50 import model
11
+
12
+ model.model_vision.pixel_mean = constants.imagenet_rgb256_mean
13
+ model.model_vision.pixel_std = constants.imagenet_rgb256_std
14
+ model.model_vision.input_format = "RGB"
15
+
16
+ model.model_vision.backbone = backbone
17
+
18
+ model.model_vision.neck = None
19
+
20
+ model.model_vision.mask_in_features = ["p2"]
21
+ model.model_vision.input_shapes = {
22
+ "p2": ShapeSpec(channels=256),
23
+ "p3": ShapeSpec(channels=256),
24
+ "p4": ShapeSpec(channels=256),
25
+ "p5": ShapeSpec(channels=256),
26
+ "p6": ShapeSpec(channels=256),
27
+ }
28
+
29
+ optimizer = get_config("common/optim.py").AdamW
30
+ optimizer.params.lr_factor_func = (
31
+ lambda module_name: 0.1
32
+ if "reference_points" in module_name or "sampling_offsets" in module_name
33
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.8, num_layers=24)
34
+ if "backbone.net" in module_name
35
+ else 1
36
+ )
37
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
38
+ optimizer.params.weight_decay_norm = None
39
+
40
+ optimizer.lr = 2e-4
41
+ optimizer.betas = (0.9, 0.999)
42
+ optimizer.weight_decay = 1e-4
43
+
44
+ train = get_config("common/train.py").train
45
+ train.max_iter = 90000
46
+ train.eval_period = 5000
47
+ train.log_period = 20
48
+
49
+ train.checkpointer.period = 5000
50
+ train.checkpointer.max_to_keep = 2
51
+
52
+ train.clip_grad.enabled = True
53
+ train.clip_grad.params.max_norm = 0.1
54
+ train.clip_grad.params.norm_type = 2
55
+
56
+ train.device = "cuda"
57
+
58
+ train.init_checkpoint = (
59
+ "models/Yuxin-CV/EVA-02/eva02/pt/eva02_L_pt_in21k_p14to16.pt?matching_heuristics=True"
60
+ )
61
+
62
+ train.amp.enabled = True
63
+ train.ddp.fp16_compression = True
64
+
65
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
66
+ lr_multiplier.scheduler.milestones = [75000, 90000]
67
+ lr_multiplier.warmup_length = 1000 / train.max_iter
68
+
69
+ dataloader.train.num_workers = 16
70
+ dataloader.train.total_batch_size = 64
71
+ dataloader.train.mapper.image_format = "RGB"
72
+ dataloader.train.mapper.use_instance_mask = True
73
+
74
+ model.model_vision.dataset_prompts = ["name"]
75
+ model.model_vision.dataset_names = ["coco_2017"]
76
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
77
+
78
+ train.output_dir = "output/" + __file__[:-3]
79
+
80
+ model.model_language = L(EVA01CLIP)(
81
+ clip_model="EVA_CLIP_g_14_X", cache_dir="models/BAAI/EVA/eva_clip_psz14.pt"
82
+ )
83
+ model.model_vision.embed_dim_language = 1024
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_eva02_vlf_lsj1024_cp_12ep.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detectron2.config import LazyCall as L
2
+ from ape.layers import VisionLanguageFusion
3
+ from ape.modeling.ape_deta import (
4
+ DeformableDETRSegmVL,
5
+ DeformableDetrTransformerDecoderVL,
6
+ DeformableDetrTransformerEncoderVL,
7
+ DeformableDetrTransformerVL,
8
+ )
9
+
10
+ from .ape_deta_vitl_eva02_lsj1024_cp_12ep import dataloader, lr_multiplier, model, optimizer, train
11
+
12
+ model.model_vision.update(
13
+ _target_=DeformableDETRSegmVL,
14
+ )
15
+ model.model_vision.transformer.update(
16
+ _target_=DeformableDetrTransformerVL,
17
+ )
18
+ model.model_vision.transformer.encoder.update(
19
+ _target_=DeformableDetrTransformerEncoderVL,
20
+ )
21
+ model.model_vision.transformer.decoder.update(
22
+ _target_=DeformableDetrTransformerDecoderVL,
23
+ )
24
+
25
+ model.model_vision.transformer.encoder.vl_layer = L(VisionLanguageFusion)(
26
+ v_dim="${....embed_dim}",
27
+ l_dim="${....embed_dim_language}",
28
+ embed_dim=2048,
29
+ num_heads=8,
30
+ dropout=0.1,
31
+ drop_path=0.0,
32
+ init_values=1.0 / 6,
33
+ stable_softmax_2d=True,
34
+ clamp_min_for_underflow=True,
35
+ clamp_max_for_overflow=True,
36
+ use_checkpoint=True,
37
+ )
38
+
39
+ model.model_vision.text_feature_bank = True
40
+ model.model_vision.text_feature_reduce_before_fusion = True
41
+ model.model_vision.text_feature_batch_repeat = True
42
+ model.model_vision.expression_cumulative_gt_class = True
43
+ model.model_vision.name_prompt_fusion_type = "zero"
44
+
45
+ train.output_dir = "output/" + __file__[:-3]
46
+ model.model_vision.vis_period = 12800
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/ape_deta_vitl_lsj1024_cp_12ep.py ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from functools import partial
2
+
3
+ import torch.nn as nn
4
+
5
+ from detectron2.config import LazyCall as L
6
+ from detectron2.layers import ShapeSpec
7
+
8
+ from detectron2.model_zoo import get_config as get_config_d2
9
+ from detectron2.modeling.backbone.fpn import LastLevelMaxPool
10
+ from detectron2.modeling.backbone.vit import SimpleFeaturePyramid, ViT, get_vit_lr_decay_rate
11
+ from detrex.config import get_config
12
+ from ape.modeling.text import EVA01CLIP
13
+
14
+ from ...common.data.coco_instance_lsj1024_cp import dataloader
15
+ from .models.ape_deta_r50 import model
16
+
17
+ constants = get_config_d2("common/data/constants.py").constants
18
+
19
+ model.model_vision.pixel_mean = constants.imagenet_rgb256_mean
20
+ model.model_vision.pixel_std = constants.imagenet_rgb256_std
21
+ model.model_vision.input_format = "RGB"
22
+
23
+ model.model_vision.backbone = L(SimpleFeaturePyramid)(
24
+ net=L(ViT)( # Single-scale ViT backbone
25
+ img_size=1024,
26
+ patch_size=16,
27
+ embed_dim=1024,
28
+ depth=24,
29
+ num_heads=16,
30
+ drop_path_rate=0.4,
31
+ window_size=14,
32
+ mlp_ratio=4,
33
+ norm_layer=partial(nn.LayerNorm, eps=1e-6),
34
+ window_block_indexes=list(range(0, 5))
35
+ + list(range(6, 11))
36
+ + list(range(12, 17))
37
+ + list(range(18, 23)),
38
+ residual_block_indexes=[],
39
+ use_rel_pos=True,
40
+ out_feature="last_feat",
41
+ use_act_checkpoint=True,
42
+ ),
43
+ in_feature="${.net.out_feature}",
44
+ out_channels=256,
45
+ scale_factors=(4.0, 2.0, 1.0, 0.5),
46
+ top_block=L(LastLevelMaxPool)(),
47
+ norm="LN",
48
+ square_pad=1024,
49
+ )
50
+
51
+ model.model_vision.neck = None
52
+
53
+ model.model_vision.mask_in_features = ["p2"]
54
+ model.model_vision.input_shapes = {
55
+ "p2": ShapeSpec(channels=256),
56
+ "p3": ShapeSpec(channels=256),
57
+ "p4": ShapeSpec(channels=256),
58
+ "p5": ShapeSpec(channels=256),
59
+ "p6": ShapeSpec(channels=256),
60
+ }
61
+
62
+ optimizer = get_config("common/optim.py").AdamW
63
+ optimizer.params.lr_factor_func = (
64
+ lambda module_name: 0.1
65
+ if "reference_points" in module_name or "sampling_offsets" in module_name
66
+ else get_vit_lr_decay_rate(module_name, lr_decay_rate=0.8, num_layers=24)
67
+ if "backbone" in module_name
68
+ else 1
69
+ )
70
+ optimizer.params.overrides = {"pos_embed": {"weight_decay": 0.0}}
71
+
72
+ optimizer.lr = 2e-4
73
+ optimizer.weight_decay = 0.05
74
+
75
+ train = get_config("common/train.py").train
76
+ train.max_iter = 90000
77
+ train.eval_period = 5000
78
+ train.log_period = 20
79
+
80
+ train.checkpointer.period = 5000
81
+ train.checkpointer.max_to_keep = 2
82
+
83
+ train.clip_grad.enabled = True
84
+ train.clip_grad.params.max_norm = 0.1
85
+ train.clip_grad.params.norm_type = 2
86
+
87
+ train.device = "cuda"
88
+
89
+ train.init_checkpoint = (
90
+ "detectron2://ImageNetPretrained/MAE/mae_pretrain_vit_large.pth?matching_heuristics=True"
91
+ )
92
+ train.init_checkpoint = "models/MAE/mae_pretrain_vit_large.pth?matching_heuristics=True"
93
+
94
+ train.amp.enabled = True
95
+ train.ddp.fp16_compression = True
96
+
97
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
98
+ lr_multiplier.scheduler.milestones = [75000, 90000]
99
+ lr_multiplier.warmup_length = 1000 / train.max_iter
100
+
101
+ dataloader.train.num_workers = 16
102
+ dataloader.train.total_batch_size = 16
103
+ dataloader.train.mapper.image_format = "RGB"
104
+ dataloader.train.mapper.use_instance_mask = True
105
+
106
+ model.model_vision.dataset_prompts = ["name"]
107
+ model.model_vision.dataset_names = ["coco_2017"]
108
+ model.model_vision.dataset_metas = dataloader.train.dataset.names
109
+
110
+ train.output_dir = "output/" + __file__[:-3]
111
+ model.model_vision.output_dir = train.output_dir
112
+ dataloader.train.mapper.output_dir = train.output_dir
113
+ dataloader.train.mapper.vis_period = 12800
114
+
115
+ model.model_language = L(EVA01CLIP)(
116
+ clip_model="EVA_CLIP_g_14_X", cache_dir="models/BAAI/EVA/eva_clip_psz14.pt"
117
+ )
118
+ model.model_vision.embed_dim_language = 1024
approach/ovod/APE/configs/COCO_InstanceSegmentation/ape_deta/models/ape_deta_r50.py ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch.nn as nn
2
+
3
+ from detectron2.config import LazyCall as L
4
+ from detectron2.layers import ShapeSpec
5
+ from detectron2.modeling.backbone import BasicStem, ResNet
6
+ from detrex.layers import PositionEmbeddingSine
7
+ from detrex.modeling.matcher import HungarianMatcher
8
+ from detrex.modeling.neck import ChannelMapper
9
+ from ape.modeling.ape_deta import (
10
+ DeformableCriterion,
11
+ DeformableDETR,
12
+ DeformableDETRSegm,
13
+ DeformableDetrTransformer,
14
+ DeformableDetrTransformerDecoder,
15
+ DeformableDetrTransformerEncoder,
16
+ SomeThing,
17
+ Stage1Assigner,
18
+ Stage2Assigner,
19
+ )
20
+ from ape.modeling.text import T5_warpper
21
+
22
+
23
+
24
+ model_vision = L(DeformableDETRSegm)(
25
+ backbone=L(ResNet)(
26
+ stem=L(BasicStem)(in_channels=3, out_channels=64, norm="FrozenBN"),
27
+ stages=L(ResNet.make_default_stages)(
28
+ depth=50,
29
+ stride_in_1x1=False,
30
+ norm="FrozenBN",
31
+ ),
32
+ out_features=["res2", "res3", "res4", "res5"],
33
+ freeze_at=1,
34
+ ),
35
+ position_embedding=L(PositionEmbeddingSine)(
36
+ num_pos_feats=128,
37
+ temperature=10000,
38
+ normalize=True,
39
+ offset=-0.5,
40
+ ),
41
+ neck=L(ChannelMapper)(
42
+ input_shapes={
43
+ "res3": ShapeSpec(channels=512),
44
+ "res4": ShapeSpec(channels=1024),
45
+ "res5": ShapeSpec(channels=2048),
46
+ },
47
+ in_features=["res3", "res4", "res5"],
48
+ out_channels=256,
49
+ num_outs=5,
50
+ kernel_size=1,
51
+ norm_layer=L(nn.GroupNorm)(num_groups=32, num_channels=256),
52
+ ),
53
+ transformer=L(DeformableDetrTransformer)(
54
+ encoder=L(DeformableDetrTransformerEncoder)(
55
+ embed_dim=256,
56
+ num_heads=8,
57
+ feedforward_dim=2048,
58
+ attn_dropout=0.0,
59
+ ffn_dropout=0.0,
60
+ num_layers=6,
61
+ post_norm=False,
62
+ num_feature_levels="${..num_feature_levels}",
63
+ ),
64
+ decoder=L(DeformableDetrTransformerDecoder)(
65
+ embed_dim=256,
66
+ num_heads=8,
67
+ feedforward_dim=2048,
68
+ attn_dropout=0.0,
69
+ ffn_dropout=0.0,
70
+ num_layers=6,
71
+ return_intermediate=True,
72
+ num_feature_levels="${..num_feature_levels}",
73
+ ),
74
+ as_two_stage="${..as_two_stage}",
75
+ num_feature_levels=5,
76
+ two_stage_num_proposals="${..num_queries}",
77
+ assign_first_stage=True,
78
+ ),
79
+ embed_dim=256,
80
+ num_classes=80,
81
+ num_queries=900,
82
+ aux_loss=True,
83
+ with_box_refine=True,
84
+ as_two_stage=True,
85
+ criterion=[
86
+ L(DeformableCriterion)(
87
+ num_classes="${...num_classes}",
88
+ matcher=L(HungarianMatcher)(
89
+ cost_class=2.0,
90
+ cost_bbox=5.0,
91
+ cost_giou=2.0,
92
+ cost_class_type="focal_loss_cost",
93
+ alpha=0.25,
94
+ gamma=2.0,
95
+ ),
96
+ matcher_stage1=L(Stage1Assigner)(
97
+ t_low=0.3,
98
+ t_high=0.7,
99
+ max_k=4,
100
+ ),
101
+ matcher_stage2=L(Stage2Assigner)(
102
+ num_queries="${model.model_vision.num_queries}",
103
+ num_classes="${..num_classes}",
104
+ max_k=4,
105
+ ),
106
+ weight_dict={
107
+ "loss_class": 1.0,
108
+ "loss_bbox": 5.0,
109
+ "loss_giou": 2.0,
110
+ "loss_mask": 5,
111
+ "loss_dice": 5,
112
+ },
113
+ loss_class_type="focal_loss",
114
+ alpha=0.25,
115
+ gamma=2.0,
116
+ losses=["class", "boxes", "masks"],
117
+ ),
118
+ ],
119
+ pixel_mean=[123.675, 116.280, 103.530],
120
+ pixel_std=[58.395, 57.120, 57.375],
121
+ select_box_nums_for_evaluation=100,
122
+ input_format="RGB",
123
+ mask_encode_level=0,
124
+ mask_in_features=["res2"],
125
+ input_shapes={
126
+ "res2": ShapeSpec(channels=256),
127
+ "res3": ShapeSpec(channels=512),
128
+ "res4": ShapeSpec(channels=1024),
129
+ "res5": ShapeSpec(channels=2048),
130
+ },
131
+ output_dir=None,
132
+ vis_period=0,
133
+ embed_dim_language=1024,
134
+ instance_on=True,
135
+ semantic_on=False,
136
+ panoptic_on=False,
137
+ )
138
+
139
+ if model_vision.aux_loss:
140
+ for j in range(len(model_vision.criterion)):
141
+ weight_dict = model_vision.criterion[j].weight_dict
142
+ aux_weight_dict = {}
143
+ for i in range(model_vision.transformer.decoder.num_layers - 1):
144
+ aux_weight_dict.update({k + f"_{i}": v for k, v in weight_dict.items()})
145
+ aux_weight_dict.update({k + "_enc": v for k, v in weight_dict.items()})
146
+ weight_dict.update(aux_weight_dict)
147
+ model_vision.criterion[j].weight_dict = weight_dict
148
+
149
+ model = L(SomeThing)(
150
+ model_vision=model_vision,
151
+ model_language=L(T5_warpper)(
152
+ pretrained_model_name_or_path="models/google/flan-t5-large/",
153
+ eval_only=True,
154
+ ),
155
+ )
approach/ovod/APE/configs/COCO_InstanceSegmentation/deformable_deta/deformable_deta_segm_r50_12ep.py ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from detrex.config import get_config
2
+
3
+ from ...common.data.coco_instance import dataloader
4
+ from .models.deformable_deta_segm_r50 import model
5
+
6
+ lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep
7
+ lr_multiplier.scheduler.milestones = [75000, 90000]
8
+ optimizer = get_config("common/optim.py").AdamW
9
+ train = get_config("common/train.py").train
10
+
11
+ train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl"
12
+ train.init_checkpoint = "models/torchvision/R-50.pkl"
13
+ train.output_dir = "output/" + __file__[:-3]
14
+
15
+ train.max_iter = 90000
16
+
17
+ train.eval_period = 5000
18
+
19
+ train.log_period = 20
20
+
21
+ train.checkpointer.period = 5000
22
+ train.checkpointer.max_to_keep = 2
23
+
24
+ train.clip_grad.enabled = True
25
+ train.clip_grad.params.max_norm = 0.1
26
+ train.clip_grad.params.norm_type = 2
27
+
28
+ train.device = "cuda"
29
+
30
+ optimizer.lr = 2e-4
31
+ optimizer.betas = (0.9, 0.999)
32
+ optimizer.weight_decay = 1e-4
33
+ optimizer.params.lr_factor_func = (
34
+ lambda module_name: 0.1
35
+ if "backbone" in module_name
36
+ or "reference_points" in module_name
37
+ or "sampling_offsets" in module_name
38
+ else 1
39
+ )
40
+ optimizer.params.weight_decay_norm = None
41
+
42
+ dataloader.train.num_workers = 16
43
+
44
+ dataloader.train.total_batch_size = 16
45
+
46
+
47
+ dataloader.train.mapper.use_instance_mask = True
48
+
49
+ train.amp.enabled = True
50
+ train.ddp.fp16_compression = True
51
+ train.ddp.find_unused_parameters = False
52
+
53
+ model.dataset_metas = dataloader.train.dataset.names