Beispiel #1
0
def fix_path(cfg: DictConfig) -> DictConfig:
    from hydra.utils import to_absolute_path as abs_path

    cfg.data_dirs = list(always_iterable(cfg.data_dirs))
    num_dirs = len(cfg.data_dirs)
    cfg.data_dirs = [
        abs_path(os.path.expanduser(cfg.data_dirs[i])) for i in range(num_dirs)
    ]
    path_patterns = [
        r"^(train|valid|test|cv)_(qrels|query|data)$",
        r"^collection$",
        r"qa_(train|valid|test)_path$",
        r"^(load_checkpoint|resume_from_checkpoint)$",
        r"^(train|valid|test)_(src|tgt)_path$",
    ]

    for key in cfg.keys():
        if any(re.search(pat, key) for pat in path_patterns):
            orig = cfg[key]
            cfg[key] = get_path(cfg.data_dirs, cfg[key])
            logger.debug(f"Resolve {key}: {orig} -> {cfg[key]}")

    return cfg