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"]