Realcat's picture
update: major change
499e141
raw
history blame
2.34 kB
# -*- 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()