当前位置:网站首页>基于hydra库实现yaml配置文件的读取(支持命令行参数)

基于hydra库实现yaml配置文件的读取(支持命令行参数)

2022-08-11 08:43:00 ytusdc

argparse库的使用,发现较为方便。但是应对参数较多的场景时,在命令行里修改参数就变得较为麻烦。因此转向了对配置文件的使用,yaml是一个开放性的配置文件格式。使用yaml库加载不支持命令行参数,使用hydra库加载配置文件时可以支持命令行参数(实现对默认配置的新增、修改与删除)。hydra对于yaml配置文件中支持的格式有:str、int、float、bool、list这5种格式,完全满足一般项目的基本配置了。

Hydra 是一个开源 Python 框架,可简化研究和其他复杂应用程序的开发。
关键特性是能够通过组合动态创建分层配置,并通过配置文件和命令行覆盖它。 Hydra 这个名字来源于它能够运行多个类似的工作——就像一个有多个头的 Hydra。

简单来讲,就是管理yaml config配置文件的,更方便一点的,虽然也可以yaml.load(),但是这个就是遇到了和没遇到一些工具的区别,比如 tensorboard 和wandb 之类的 wandb真的是香

  1. 官方文档:Getting started | Hydra
  2. towards上英文教程:Complete tutorial on how to use Hydra in Machine Learning projects
  3. 配合使用OmegaConf:OmegaConf — OmegaConf 2.3.0.dev0 documentation

安装hydra

pip install hydra-core

hydra 配置框架用法详解

创建config.yaml

model:
  sample_rate: &sample_rate 16000

  train_ds:
    manifest_filepath: ???
    sample_rate: 16000
    batch_size: 32
    trim_silence: false
    max_duration: 16.7
    shuffle: true
    is_tarred: false
    tarred_audio_filepaths: null
    use_start_end_token: false
    
defaults:
  - _self_  #放在- foo: bar的前面优先使用defaults下面的- foo: bar中的值
  - foo: bar
  #- _self_ #放在- foo: bar的后面优先使用defaults外面的- foo: bar中的值

参考文章: 基于hydra库实现yaml配置文件的读取(支持命令行参数)-pudn.com

【Python】Hydra 库使用记录 - Kin_Zhang - 博客园

yaml中使用记录及环境变量的交互_jaffe—fly的博客-CSDN博客_yaml获取环境变量

原网站

版权声明
本文为[ytusdc]所创,转载请带上原文链接,感谢
https://blog.csdn.net/ytusdc/article/details/125818405