Hydra 是 Facebook 开发的配置管理框架,支持层次化配置、动态参数修改,适合机器学习实验管理。
核心特性
| 特性 | 说明 |
|---|---|
| 层次化配置 | 拆分多文件,支持继承覆盖 |
| 动态配置 | 命令行覆盖参数 |
| 配置组 | 动态选择配置文件 |
| 多格式支持 | YAML、JSON、INI |
安装
pip install hydra-core基本用法
import hydra
from omegaconf import OmegaConf
@hydra.main(config_path="conf", config_name="config.yaml")
def main(cfg):
print(OmegaConf.to_yaml(cfg))
if __name__ == "__main__":
main()配置文件结构
config.yaml
model:
name: resnet50
lr: 0.001
batch_size: 64
optimizer:
type: adam
weight_decay: 0.0001配置组
conf/
├── config.yaml
└── model/
├── resnet.yaml
└── vgg.yaml命令行选择配置:
python train.py model=vgg # 使用 vgg.yaml
python train.py model=resnet # 使用 resnet.yaml动态参数覆盖
python train.py model=resnet lr=0.0005 batch_size=128配置继承
base.yaml
optimizer:
type: adam
weight_decay: 0.0001resnet.yaml
name: resnet50
lr: 0.001
defaults:
- /base
optimizer:
weight_decay: 0.0005 # 覆盖 base多任务运行
python train.py --multirun model=resnet,vgg lr=0.001,0.0001自动组合运行所有配置组合。