from detrex.config import get_config from ..models.dino_r50 import model import itertools from omegaconf import OmegaConf from detectron2.config import LazyCall as L from detectron2.data import ( build_detection_test_loader, build_detection_train_loader, get_detection_dataset_dicts, ) from detectron2.data.datasets import register_coco_instances from detectron2.modeling.backbone import ResNet, BasicStem from projects.vCLR_deformable_mask.modeling import OursDatasetMapper dataloader = OmegaConf.create() # get default config optimizer = get_config("common/optim.py").AdamW lr_multiplier = get_config("common/coco_schedule.py").lr_multiplier_12ep train = get_config("common/train.py").train # modify training config train.init_checkpoint = "detectron2://ImageNetPretrained/torchvision/R-50.pkl" train.output_dir = "./output/dino_openworld" # max training iterations train.max_iter = 60000 train.eval_period = 5000 train.log_period = 200 train.checkpointer.period = 5000 # 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 # modify optimizer config optimizer.lr = 1e-4 # original 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 model config model.dn_number = 100 model.num_classes = 1 model.select_box_nums_for_evaluation=900 # ema train.model_ema.enabled=True train.model_ema.decay=0.999 model.num_queries = 2000 model.transformer.encoder.use_checkpoint=False model.transformer.decoder.use_checkpoint=False train.model_ema.use_ema_weights_for_eval_only=True