yacs直接讀取yaml文檔(python)

yacs在我理解是一種讀寫配置文件的python包。在機器學習領域,很多模型需要設置超參數,當超參數過多時,不方便管理,於是出現了很多類似yaml,yacs的包。

關於yacs的使用,網上有一些文檔,類似這篇。這些方法都需要先加載定義了一些CfgNode的文檔,然後通過merge_from_file函數加載yaml. 本文要介紹的是如何直接加載yaml文件。

如有文件test.yaml,內容如下:

DATASETS:
  TRAIN: ["voc_2007_train", "coco_2017_train",]
  TEST: ["coco_2017_test",]
DATALOADER:
  NUM_WORKERS: 1
SOLVER:
  BASE_LR: 0.01
  WEIGHT_DECAY: 0.0001
  STEPS: [120000, 160000]
  MAX_ITER: 180000
  IMS_PER_BATCH: 1

通過以下代碼可以加載test.yaml,且引用配置文件裏變量的方法不是字典方式,而是通過符號“.”級聯

from yacs.config import CfgNode as CN

yaml_name='./test.yaml'
fcfg = open(yaml_name)
cfg = CN.load_cfg(fcfg)
cfg.freeze()
print(cfg.DATASETS.TEST)#輸出:["coco_2017_test"]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章