yacs的简介
A simple experiment configuration system for research.
yacs是作为一个轻量级库创建的,用于定义和管理系统配置,比如那些通常可以在为科学实验设计的软件中找到的配置。这些“配置”通常包括用于训练机器学习模型的超参数或可配置模型超参数(如卷积神经网络的深度)等概念。由于您正在进行科学研究,所以再现性是最重要的,因此您需要一种可靠的方法来序列化实验配置。YACS使用YAML作为一种简单的、人类可读的序列化格式。范例是:你的代码+实验E的yacs配置(+外部依赖+硬件+其他讨厌的术语…)=可重复的实验E。虽然你不能控制一切,但至少你可以控制你的代码和你的实验配置。yacs会帮你的。
yacs是在py-fast -rcnn和Detectron中使用的实验配置系统中发展起来的。
yacs的安装
pip install yacs
yacs的使用方法
1、基础用法
# my_project/config.py
from yacs.config import CfgNode as CN
_C = CN()
_C.SYSTEM = CN()
# Number of GPUS to use in the experiment
_C.SYSTEM.NUM_GPUS = 8
# Number of workers for doing things
_C.SYSTEM.NUM_WORKERS = 4
_C.TRAIN = CN()
# A very important hyperparameter
_C.TRAIN.HYPERPARAMETER_1 = 0.1
# The all important scales for the stuff
_C.TRAIN.SCALES = (2, 4, 8, 16)
def get_cfg_defaults():
"""Get a yacs CfgNode object with default values for my_project."""
# Return a clone so that the defaults will not be altered
# This is for the "local variable" use pattern
return _C.clone()
# Alternatively, provide a way to import the defaults as
# a global singleton:
# cfg = _C # users can `from config import cfg`