Spaces:
Running
Running
# -*- 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() | |