Other
imsuperkong commited on
Commit
ffb3d7e
·
verified ·
1 Parent(s): b1be475

Upload t1_spformer/config.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. t1_spformer/config.py +277 -0
t1_spformer/config.py ADDED
@@ -0,0 +1,277 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ weight = 'weights/volt-base-scannetpp.pth'
2
+ resume = False
3
+ evaluate = True
4
+ test_only = False
5
+ seed = 20260816
6
+ save_path = 'exp/default'
7
+ num_worker = 16
8
+ batch_size = 2
9
+ gradient_accumulation_steps = 8
10
+ batch_size_val = None
11
+ batch_size_test = None
12
+ epoch = 400
13
+ eval_epoch = 20
14
+ clip_grad = 10.0
15
+ use_ema = True
16
+ ema_decay = 0.999
17
+ dataset_ratios = None
18
+ sync_bn = False
19
+ enable_amp = True
20
+ amp_dtype = 'bfloat16'
21
+ empty_cache = False
22
+ empty_cache_per_epoch = False
23
+ find_unused_parameters = True
24
+ enable_wandb = False
25
+ wandb_project = 'Volt'
26
+ wandb_key = None
27
+ mix_prob = 0.0
28
+ param_dicts = None
29
+ hooks = [
30
+ dict(type='CheckpointLoader'),
31
+ dict(type='IterationTimer', warmup_iter=2),
32
+ dict(type='InformationWriter'),
33
+ dict(
34
+ type='InsSegEvaluator',
35
+ segment_ignore_index=(-1, 0),
36
+ min_region_size=1),
37
+ dict(type='CheckpointSaver', save_freq=2)
38
+ ]
39
+ train = dict(type='DefaultTrainer')
40
+ test = dict(
41
+ type='InsSegTester',
42
+ verbose=True,
43
+ segment_ignore_index=(-1, 0),
44
+ instance_ignore_index=-1)
45
+ SUPERPOINT_PARAMS = dict(k_thresh=0.005, seg_min=5)
46
+ num_classes = 3
47
+ segment_ignore_index = (-1, 0)
48
+ semantic_num_classes = 2
49
+ num_channels = 256
50
+ model = dict(
51
+ type='SPFormer-v1m1',
52
+ backbone=dict(
53
+ type='Volt',
54
+ in_channels=6,
55
+ embed_dim=768,
56
+ depth=12,
57
+ num_heads=12,
58
+ mlp_ratio=4,
59
+ init_values=None,
60
+ qk_norm=True,
61
+ drop_path=0.3,
62
+ stride=5,
63
+ kernel_size=5,
64
+ increase_drop_path=True,
65
+ up_mlp_dim=256),
66
+ decoder=dict(
67
+ type='SPFormerDecoder',
68
+ num_class=2,
69
+ in_channel=256,
70
+ num_layer=6,
71
+ num_query=200,
72
+ d_model=384,
73
+ nhead=8,
74
+ hidden_dim=1024,
75
+ dropout=0.0,
76
+ activation_fn='gelu',
77
+ iter_pred=True,
78
+ attn_mask=True,
79
+ use_query_pos=False,
80
+ use_score=True,
81
+ use_param_query=True),
82
+ criterion=dict(
83
+ type='SPFormerCriterion',
84
+ matcher=dict(
85
+ type='SPFormerHungarianMatcher',
86
+ costs=[
87
+ dict(type='SPFormerQueryClassificationCost', weight=0.5),
88
+ dict(type='SPFormerMaskBCECost', weight=1.0),
89
+ dict(type='SPFormerMaskDiceCost', weight=1.0)
90
+ ]),
91
+ loss_weight=[0.2, 1.0, 1.0, 0.5],
92
+ num_classes=2,
93
+ non_object_weight=0.1,
94
+ fix_dice_loss_weight=False,
95
+ iter_matcher=True,
96
+ fix_mean_loss=True),
97
+ semantic_num_classes=2,
98
+ semantic_ignore_index=-1,
99
+ segment_ignore_index=(-1, 0),
100
+ instance_ignore_index=-1,
101
+ topk_insts=200,
102
+ score_thr=0.0,
103
+ npoint_thr=10,
104
+ nms=True)
105
+ optimizer = dict(type='AdamW', lr=0.0003, weight_decay=0.1)
106
+ scheduler = dict(
107
+ type='OneCycleLR',
108
+ max_lr=0.0003,
109
+ pct_start=0.05,
110
+ anneal_strategy='cos',
111
+ div_factor=10.0,
112
+ final_div_factor=1000.0)
113
+ dataset_type = 'ArtiInsSegDataset'
114
+ data_root = 'data/pointcept_mov'
115
+ GRID = 0.02
116
+ data = dict(
117
+ num_classes=3,
118
+ ignore_index=-1,
119
+ names=['background', 'rotation', 'translation'],
120
+ train=dict(
121
+ type='ArtiInsSegDataset',
122
+ split='train',
123
+ data_root='data/pointcept_mov',
124
+ motion_targets=False,
125
+ require_assets=('coord', 'color', 'normal', 'segment', 'instance',
126
+ 'superpoint'),
127
+ transform=[
128
+ dict(type='SphereCrop', point_max=400000, mode='random'),
129
+ dict(type='CenterShift', apply_z=True),
130
+ dict(
131
+ type='RandomDropout',
132
+ dropout_ratio=0.2,
133
+ dropout_application_ratio=0.2),
134
+ dict(
135
+ type='RandomRotate',
136
+ angle=[-1, 1],
137
+ axis='z',
138
+ center=[0, 0, 0],
139
+ p=0.95),
140
+ dict(
141
+ type='RandomRotate',
142
+ angle=[-0.015625, 0.015625],
143
+ axis='x',
144
+ p=0.95),
145
+ dict(
146
+ type='RandomRotate',
147
+ angle=[-0.015625, 0.015625],
148
+ axis='y',
149
+ p=0.95),
150
+ dict(type='RandomScale', scale=[0.9, 1.1]),
151
+ dict(type='ChromaticAutoContrast', p=0.2, blend_factor=None),
152
+ dict(type='ChromaticTranslation', p=0.95, ratio=0.05),
153
+ dict(type='ChromaticJitter', p=0.95, std=0.05),
154
+ dict(type='SphereCrop', sample_rate=0.6, mode='random'),
155
+ dict(
156
+ type='Copy',
157
+ keys_dict=dict(
158
+ coord='origin_coord',
159
+ instance='origin_instance',
160
+ segment='origin_segment')),
161
+ dict(
162
+ type='Update',
163
+ keys_dict=dict(index_valid_keys=[
164
+ 'coord', 'color', 'normal', 'segment', 'instance'
165
+ ])),
166
+ dict(
167
+ type='GridSample',
168
+ grid_size=0.02,
169
+ hash_type='fnv',
170
+ mode='train',
171
+ return_grid_coord=True,
172
+ return_inverse=True),
173
+ dict(type='NormalizeColor'),
174
+ dict(
175
+ type='InstanceParser',
176
+ segment_ignore_index=(-1, 0),
177
+ instance_ignore_index=-1),
178
+ dict(type='ToTensor'),
179
+ dict(
180
+ type='Collect',
181
+ keys=('coord', 'origin_coord', 'grid_coord', 'segment',
182
+ 'origin_segment', 'instance', 'origin_instance',
183
+ 'superpoint', 'inverse'),
184
+ feat_keys=('color', 'normal'),
185
+ offset_keys_dict=dict(
186
+ offset='coord', origin_offset='origin_coord'))
187
+ ],
188
+ test_mode=False,
189
+ loop=20),
190
+ val=dict(
191
+ type='ArtiInsSegDataset',
192
+ split='validation',
193
+ data_root='data/pointcept_mov',
194
+ motion_targets=False,
195
+ require_assets=('coord', 'color', 'normal', 'segment', 'instance',
196
+ 'superpoint'),
197
+ transform=[
198
+ dict(type='CenterShift', apply_z=True),
199
+ dict(
200
+ type='Copy',
201
+ keys_dict=dict(
202
+ coord='origin_coord',
203
+ instance='origin_instance',
204
+ segment='origin_segment')),
205
+ dict(
206
+ type='Update',
207
+ keys_dict=dict(index_valid_keys=[
208
+ 'coord', 'color', 'normal', 'segment', 'instance'
209
+ ])),
210
+ dict(
211
+ type='GridSampleDeterministic',
212
+ grid_size=0.02,
213
+ hash_type='fnv',
214
+ return_grid_coord=True,
215
+ return_inverse=True),
216
+ dict(type='NormalizeColor'),
217
+ dict(
218
+ type='InstanceParser',
219
+ segment_ignore_index=(-1, 0),
220
+ instance_ignore_index=-1),
221
+ dict(type='ToTensor'),
222
+ dict(
223
+ type='Collect',
224
+ keys=('coord', 'origin_coord', 'grid_coord', 'segment',
225
+ 'origin_segment', 'instance', 'origin_instance',
226
+ 'superpoint', 'inverse', 'name'),
227
+ feat_keys=('color', 'normal'),
228
+ offset_keys_dict=dict(
229
+ offset='coord', origin_offset='origin_coord'))
230
+ ],
231
+ test_mode=False),
232
+ test=dict(
233
+ type='ArtiInsSegDataset',
234
+ split='validation',
235
+ data_root='data/pointcept_mov',
236
+ motion_targets=False,
237
+ require_assets=('coord', 'color', 'normal', 'segment', 'instance',
238
+ 'superpoint'),
239
+ transform=[
240
+ dict(type='CenterShift', apply_z=True),
241
+ dict(
242
+ type='Copy',
243
+ keys_dict=dict(
244
+ coord='origin_coord',
245
+ instance='origin_instance',
246
+ segment='origin_segment')),
247
+ dict(
248
+ type='Update',
249
+ keys_dict=dict(index_valid_keys=[
250
+ 'coord', 'color', 'normal', 'segment', 'instance'
251
+ ])),
252
+ dict(
253
+ type='GridSampleDeterministic',
254
+ grid_size=0.02,
255
+ hash_type='fnv',
256
+ return_grid_coord=True,
257
+ return_inverse=True),
258
+ dict(type='NormalizeColor'),
259
+ dict(
260
+ type='InstanceParser',
261
+ segment_ignore_index=(-1, 0),
262
+ instance_ignore_index=-1),
263
+ dict(type='ToTensor'),
264
+ dict(
265
+ type='Collect',
266
+ keys=('coord', 'origin_coord', 'grid_coord', 'segment',
267
+ 'origin_segment', 'instance', 'origin_instance',
268
+ 'superpoint', 'inverse', 'name'),
269
+ feat_keys=('color', 'normal'),
270
+ offset_keys_dict=dict(
271
+ offset='coord', origin_offset='origin_coord'))
272
+ ],
273
+ test_mode=False))
274
+ num_worker_per_gpu = 16
275
+ batch_size_per_gpu = 2
276
+ batch_size_val_per_gpu = 1
277
+ batch_size_test_per_gpu = 1