Spaces:
Runtime error
Runtime error
from yacs.config import CfgNode as CN | |
import argparse | |
import yaml | |
import os | |
abs_barc_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..',)) | |
_C = CN() | |
_C.barc_dir = abs_barc_dir | |
_C.device = 'cuda' | |
## path settings | |
_C.paths = CN() | |
_C.paths.ROOT_OUT_PATH = abs_barc_dir + '/results/' | |
_C.paths.ROOT_CHECKPOINT_PATH = abs_barc_dir + '/checkpoint/' | |
_C.paths.MODELPATH_NORMFLOW = abs_barc_dir + '/checkpoint/barc_normflow_pret/rgbddog_v3_model.pt' | |
## parameter settings | |
_C.params = CN() | |
_C.params.ARCH = 'hg8' | |
_C.params.STRUCTURE_POSE_NET = 'normflow' # 'default' # 'vae' | |
_C.params.NF_VERSION = 3 | |
_C.params.N_JOINTS = 35 | |
_C.params.N_KEYP = 24 #20 | |
_C.params.N_SEG = 2 | |
_C.params.N_PARTSEG = 15 | |
_C.params.UPSAMPLE_SEG = True | |
_C.params.ADD_PARTSEG = True # partseg: for the CVPR paper this part of the network exists, but is not trained (no part labels in StanExt) | |
_C.params.N_BETAS = 30 # 10 | |
_C.params.N_BETAS_LIMBS = 7 | |
_C.params.N_BONES = 24 | |
_C.params.N_BREEDS = 121 # 120 breeds plus background | |
_C.params.IMG_SIZE = 256 | |
_C.params.SILH_NO_TAIL = False | |
_C.params.KP_THRESHOLD = None | |
_C.params.ADD_Z_TO_3D_INPUT = False | |
_C.params.N_SEGBPS = 64*2 | |
_C.params.ADD_SEGBPS_TO_3D_INPUT = True | |
_C.params.FIX_FLENGTH = False | |
_C.params.RENDER_ALL = True | |
_C.params.VLIN = 2 | |
_C.params.STRUCTURE_Z_TO_B = 'lin' | |
_C.params.N_Z_FREE = 64 | |
_C.params.PCK_THRESH = 0.15 | |
_C.params.REF_NET_TYPE = 'add' # refinement network type | |
_C.params.REF_DETACH_SHAPE = True | |
_C.params.GRAPHCNN_TYPE = 'inexistent' | |
_C.params.ISFLAT_TYPE = 'inexistent' | |
_C.params.SHAPEREF_TYPE = 'inexistent' | |
## SMAL settings | |
_C.smal = CN() | |
_C.smal.SMAL_MODEL_TYPE = 'barc' | |
_C.smal.SMAL_KEYP_CONF = 'green' | |
## optimization settings | |
_C.optim = CN() | |
_C.optim.LR = 5e-4 | |
_C.optim.SCHEDULE = [150, 175, 200] | |
_C.optim.GAMMA = 0.1 | |
_C.optim.MOMENTUM = 0 | |
_C.optim.WEIGHT_DECAY = 0 | |
_C.optim.EPOCHS = 220 | |
_C.optim.BATCH_SIZE = 12 # keep 12 (needs to be an even number, as we have a custom data sampler) | |
_C.optim.TRAIN_PARTS = 'all_without_shapedirs' | |
## dataset settings | |
_C.data = CN() | |
_C.data.DATASET = 'stanext24' | |
_C.data.V12 = True | |
_C.data.SHORTEN_VAL_DATASET_TO = None | |
_C.data.VAL_OPT = 'val' | |
_C.data.VAL_METRICS = 'no_loss' | |
# --------------------------------------- | |
def update_dependent_vars(cfg): | |
cfg.params.N_CLASSES = cfg.params.N_KEYP + cfg.params.N_SEG | |
if cfg.params.VLIN == 0: | |
cfg.params.NUM_STAGE_COMB = 2 | |
cfg.params.NUM_STAGE_HEADS = 1 | |
cfg.params.NUM_STAGE_HEADS_POSE = 1 | |
cfg.params.TRANS_SEP = False | |
elif cfg.params.VLIN == 1: | |
cfg.params.NUM_STAGE_COMB = 3 | |
cfg.params.NUM_STAGE_HEADS = 1 | |
cfg.params.NUM_STAGE_HEADS_POSE = 2 | |
cfg.params.TRANS_SEP = False | |
elif cfg.params.VLIN == 2: | |
cfg.params.NUM_STAGE_COMB = 3 | |
cfg.params.NUM_STAGE_HEADS = 1 | |
cfg.params.NUM_STAGE_HEADS_POSE = 2 | |
cfg.params.TRANS_SEP = True | |
else: | |
raise NotImplementedError | |
if cfg.params.STRUCTURE_Z_TO_B == '1dconv': | |
cfg.params.N_Z = cfg.params.N_BETAS + cfg.params.N_BETAS_LIMBS | |
else: | |
cfg.params.N_Z = cfg.params.N_Z_FREE | |
return | |
update_dependent_vars(_C) | |
global _cfg_global | |
_cfg_global = _C.clone() | |
def get_cfg_defaults(): | |
# Get a yacs CfgNode object with default values as defined within this file. | |
# Return a clone so that the defaults will not be altered. | |
return _C.clone() | |
def update_cfg_global_with_yaml(cfg_yaml_file): | |
_cfg_global.merge_from_file(cfg_yaml_file) | |
update_dependent_vars(_cfg_global) | |
return | |
def get_cfg_global_updated(): | |
# return _cfg_global.clone() | |
return _cfg_global | |