hydra 如何用 cfg.get 取得 yaml 中的 chk_dir ?

 

 


在 Hydra 中,你可以使用 cfg.get() 來取得 chk_dir 的值,語法如下:

import hydra
from omegaconf import DictConfig

@hydra.main(config_path=".", config_name="config", version_base=None)
def main(cfg: DictConfig):
    chk_dir = cfg.get("dataset", {}).get("chk_dir", None)
    print(f"chk_dir: {chk_dir}")

if __name__ == "__main__":
    main()

解析:

  1. cfg.get("dataset", {}):先取得 dataset 字典,如果不存在則返回 {}(避免 KeyError)。
  2. .get("chk_dir", None):再從 dataset 字典中取得 chk_dir,如果不存在則返回 None

如果 config.yaml 如下:

dataset:
  chk_dir: "liver_seg_mats_check/"
則輸出:
chk_dir: liver_seg_mats_check/

這樣可以安全地讀取 chk_dir,即使 dataset 鍵不存在也不會報錯。