Spaces:
Running
on
Zero
Running
on
Zero
| # -*- coding: utf-8 -*- | |
| # @Author : xuelun | |
| from yacs.config import CfgNode as CN | |
| _CN = CN() | |
| # ------------ | |
| # Trainer | |
| # ------------ | |
| _CN.TRAINER = CN() | |
| _CN.TRAINER.SEED = 3407 | |
| _CN.TRAINER.NUM_SANITY_VAL_STEPS = -1 | |
| _CN.TRAINER.LOG_INTERVAL = 20 | |
| _CN.TRAINER.VAL_CHECK_INTERVAL = 1.0 # default 1.0, if we set 2.0 will val each 2 step | |
| _CN.TRAINER.LIMIT_TRAIN_BATCHES = 1.0 # default 1.0 | |
| _CN.TRAINER.LIMIT_VALID_BATCHES = 1.0 # default 1.0 will use all training batch | |
| _CN.TRAINER.AMP_LEVEL = 'O1' # 'O1' for apex | |
| _CN.TRAINER.AMP_BACKEND = 'apex' # 'O1' for apex | |
| _CN.TRAINER.PRECISION = 16 # default 32 | |
| _CN.TRAINER.GRADIENT_CLIP_VAL = 0.5 # default 0.0 | |
| _CN.TRAINER.GRADIENT_CLIP_ALGORITHM = 'norm' # default 'norm' | |
| # optimizer | |
| _CN.TRAINER.CANONICAL_BS = 64 | |
| _CN.TRAINER.OPTIMIZER = "adamw" # [adam, adamw] | |
| _CN.TRAINER.TRUE_LR = None # this will be calculated automatically at runtime | |
| _CN.TRAINER.ADAM_DECAY = 0. # ADAM: for adam | |
| _CN.TRAINER.ADAMW_DECAY = 0.1 | |
| # step-based warm-up | |
| _CN.TRAINER.WARMUP_TYPE = 'linear' # [linear, constant] | |
| _CN.TRAINER.WARMUP_RATIO = 0. | |
| _CN.TRAINER.WARMUP_STEP = 4800 | |
| # learning rate scheduler | |
| _CN.TRAINER.SCHEDULER = 'MultiStepLR' # [MultiStepLR, CosineAnnealing, ExponentialLR] | |
| _CN.TRAINER.SCHEDULER_INTERVAL = 'epoch' # [epoch, step] | |
| _CN.TRAINER.MSLR_MILESTONES = [3, 6, 9, 12] # MSLR: MultiStepLR | |
| _CN.TRAINER.MSLR_GAMMA = 0.5 | |
| _CN.TRAINER.COSA_TMAX = 30 # COSA: CosineAnnealing | |
| _CN.TRAINER.ELR_GAMMA = 0.999992 # ELR: ExponentialLR, this value for 'step' interval | |
| # geometric metrics and pose solver | |
| _CN.TRAINER.EPI_ERR_THR = 5e-4 # recommendation: 5e-4 for ScanNet, 1e-4 for MegaDepth (from SuperGlue) | |
| _CN.TRAINER.POSE_GEO_MODEL = 'E' # ['E', 'F', 'H'] | |
| _CN.TRAINER.POSE_ESTIMATION_METHOD = 'RANSAC' # [RANSAC, DEGENSAC, MAGSAC] | |
| _CN.TRAINER.RANSAC_PIXEL_THR = None | |
| _CN.TRAINER.RANSAC_CONF = 0.999999 | |
| _CN.TRAINER.RANSAC_MAX_ITERS = 100000 | |
| _CN.TRAINER.USE_MAGSACPP = False | |
| # Related to Visualization | |
| _CN.VISUAL = CN() | |
| _CN.VISUAL.N_VAL_PAIRS_TO_PLOT = 10 | |
| _CN.VISUAL.PLOT_MODE = 'evaluation' # ['evaluation', 'confidence'] | |
| _CN.VISUAL.PLOT_MATCHES_ALPHA = 'dynamic' | |
| def get_cfg_defaults(): | |
| """Get a yacs CfgNode object with default values for my_project.""" | |
| # Return a clone so that the defaults will not be altered | |
| # This is for the "local variable" use pattern | |
| return _CN.clone() | |