python使用yacs

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())

 

你可能感兴趣的:(人工智能,深度学习)