-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathdino_convnext_large_4scale_12ep_vg.py
executable file
·73 lines (57 loc) · 2.43 KB
/
dino_convnext_large_4scale_12ep_vg.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
from detrex.config import get_config
from .models.dino_convnextl import model
model.vlm_query_path = "dataset/metadata/lvis_visual_desc_confuse_lvis_convnextl.npy"
model.score_ensemble = True
model.backbone.score_ensemble = model.score_ensemble
model.seen_classes='dataset/VisualGenome/lvis_v1_seen_classes.json'
model.all_classes='dataset/VisualGenome/lvis_v1_all_classes.json'
model.vlm_temperature=100.0
model.alpha=0
model.beta=0.25
# get default config
dataloader = get_config("common/data/vg_train_detr.py").dataloader
optimizer = get_config("common/optim.py").AdamW
lr_multiplier = get_config("common/vg_schedule.py").lr_multiplier_12ep_32bs_warmup
train = get_config("common/train.py").train
# modify training config
# train.init_checkpoint = "./pretrained_models/idow_convnext_large_obj365_12ep.pth" # for train
train.init_checkpoint = "./pretrained_models/idow_convnext_large_12ep_vg/model_final.pth" # for inference
train.output_dir = "./output/idow_convnext_large_12ep_vg"
# max training iterations
train.max_iter = 72000
# run evaluation every 5000 iters
train.eval_period = 6000
# log training infomation every 20 iters
train.log_period = 200
# save checkpoint every 5000 iters
train.checkpointer.period = 6000
# gradient clipping for training
train.clip_grad.enabled = True
train.clip_grad.params.max_norm = 0.1
train.clip_grad.params.norm_type = 2
# set training devices
train.device = "cuda"
model.device = train.device
model.num_classes = 8212
model.query_path = "dataset/metadata/concept_dict_visual_desc_convnextl.npy"
model.eval_query_path = "dataset/metadata/lvis_visual_desc_convnextl.npy"
model.use_fed_loss = True
model.cluster_fed_loss = True
model.cluster_label_path = 'dataset/cluster/vg_cluster_256.npy'
model.cat_freq_path ="dataset/VisualGenome/vg_filter_rare_cat_info.json"
model.fed_loss_num_cat=700
model.select_box_nums_for_evaluation = 300
# modify optimizer config
optimizer.lr = 1e-4
optimizer.betas = (0.9, 0.999)
optimizer.weight_decay = 1e-4
optimizer.params.lr_factor_func = lambda module_name: 0.1 if "backbone" in module_name else 1
# modify dataloader config
dataloader.train.num_workers = 8
# please notice that this is total batch size.
# surpose you're using 4 gpus for training and the batch size for
# each gpu is 16/4 = 4
dataloader.train.total_batch_size = 32
# dump the testing results into output_dir for visualization
dataloader.evaluator.output_dir = train.output_dir
dataloader.test.dataset.names = "lvis_v1_val"