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()
解析:
- cfg.get("dataset", {}):先取得- dataset字典,如果不存在則返回- {}(避免- KeyError)。
- .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 鍵不存在也不會報錯。

留言板
歡迎留下建議與分享!希望一起交流!感恩!