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 鍵不存在也不會報錯。

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