YACS 是一个轻量级的用来管理系统配置参数的库,使用*.YAML格式的文件进行参数的存储
使用方法:
1 创建一个yaml文件如config.yaml
GPUS: (0,1,2,3)
OUTPUT_DIR: 'output'
CUDNN:
ENABLED: true
MODEL:
NAME: 'yolo'
PRETRAINED: 'xx.pth'
EXTRA:
FINAL_CONV_KERNEL: 1
STAGE2:
NUM_MODULES: 1
注意:key和value之间必须有空格,例如GPUS: (0,1,2,3)
2 创建config.py 读取yaml文件
对每一个非叶子节点都需要new 一个CN(),例如下面的代码中的
self.cfg.MODEL.EXTRA=CN()
import os
from yacs.config import CfgNode as CN
class config():
def __init__(self):
self.cfg = CN()
self.cfg.GPUS= (0,1,2,3)
self.cfg.OUTPUT_DIR= 'output'
self.cfg.CUDNN=CN()
self.cfg.CUDNN.ENABLED=True
self.cfg.MODEL=CN()
self.cfg.MODEL.NAME=''
self.cfg.MODEL.PRETRAINED=''
self.cfg.MODEL.EXTRA=CN()
self.cfg.MODEL.EXTRA.FINAL_CONV_KERNEL=0
self.cfg.MODEL.EXTRA.STAGE2=CN()
self.cfg.MODEL.EXTRA.STAGE2.NUM_MODULES=0
def get_cfg(self):
return self.cfg.clone()
def load(self,config_file):
self.cfg.OUTPUT_DIR = ''
self.cfg.defrost()
self.cfg.merge_from_file(config_file)
self.cfg.freeze()
if __name__ == '__main__':
cc=config()
cc.load("test.yaml")
print(cc.cfg)
print(cc.get_defalut_cfg())