Spaces:
Runtime error
Runtime error
import os | |
from typing import Dict | |
from yacs.config import CfgNode as CN | |
def to_lower(x: Dict) -> Dict: | |
""" | |
Convert all dictionary keys to lowercase | |
Args: | |
x (dict): Input dictionary | |
Returns: | |
dict: Output dictionary with all keys converted to lowercase | |
""" | |
return {k.lower(): v for k, v in x.items()} | |
_C = CN(new_allowed=True) | |
_C.GENERAL = CN(new_allowed=True) | |
_C.GENERAL.RESUME = True | |
_C.GENERAL.TIME_TO_RUN = 3300 | |
_C.GENERAL.VAL_STEPS = 100 | |
_C.GENERAL.LOG_STEPS = 100 | |
_C.GENERAL.CHECKPOINT_STEPS = 20000 | |
_C.GENERAL.CHECKPOINT_DIR = "checkpoints" | |
_C.GENERAL.SUMMARY_DIR = "tensorboard" | |
_C.GENERAL.NUM_GPUS = 1 | |
_C.GENERAL.NUM_WORKERS = 4 | |
_C.GENERAL.MIXED_PRECISION = True | |
_C.GENERAL.ALLOW_CUDA = True | |
_C.GENERAL.PIN_MEMORY = False | |
_C.GENERAL.DISTRIBUTED = False | |
_C.GENERAL.LOCAL_RANK = 0 | |
_C.GENERAL.USE_SYNCBN = False | |
_C.GENERAL.WORLD_SIZE = 1 | |
_C.TRAIN = CN(new_allowed=True) | |
_C.TRAIN.NUM_EPOCHS = 100 | |
_C.TRAIN.BATCH_SIZE = 32 | |
_C.TRAIN.SHUFFLE = True | |
_C.TRAIN.WARMUP = False | |
_C.TRAIN.NORMALIZE_PER_IMAGE = False | |
_C.TRAIN.CLIP_GRAD = False | |
_C.TRAIN.CLIP_GRAD_VALUE = 1.0 | |
_C.LOSS_WEIGHTS = CN(new_allowed=True) | |
_C.DATASETS = CN(new_allowed=True) | |
_C.MODEL = CN(new_allowed=True) | |
_C.MODEL.IMAGE_SIZE = 224 | |
_C.EXTRA = CN(new_allowed=True) | |
_C.EXTRA.FOCAL_LENGTH = 5000 | |
_C.DATASETS.CONFIG = CN(new_allowed=True) | |
_C.DATASETS.CONFIG.SCALE_FACTOR = 0.3 | |
_C.DATASETS.CONFIG.ROT_FACTOR = 30 | |
_C.DATASETS.CONFIG.TRANS_FACTOR = 0.02 | |
_C.DATASETS.CONFIG.COLOR_SCALE = 0.2 | |
_C.DATASETS.CONFIG.ROT_AUG_RATE = 0.6 | |
_C.DATASETS.CONFIG.TRANS_AUG_RATE = 0.5 | |
_C.DATASETS.CONFIG.DO_FLIP = True | |
_C.DATASETS.CONFIG.FLIP_AUG_RATE = 0.5 | |
_C.DATASETS.CONFIG.EXTREME_CROP_AUG_RATE = 0.10 | |
def default_config() -> CN: | |
""" | |
Get a yacs CfgNode object with the default config values. | |
""" | |
# Return a clone so that the defaults will not be altered | |
# This is for the "local variable" use pattern | |
return _C.clone() | |
def get_config(config_file: str, merge: bool = True) -> CN: | |
""" | |
Read a config file and optionally merge it with the default config file. | |
Args: | |
config_file (str): Path to config file. | |
merge (bool): Whether to merge with the default config or not. | |
Returns: | |
CfgNode: Config as a yacs CfgNode object. | |
""" | |
if merge: | |
cfg = default_config() | |
else: | |
cfg = CN(new_allowed=True) | |
cfg.merge_from_file(config_file) | |
cfg.freeze() | |
return cfg | |