python工具方法 32 实现yaml配置文件的继承(仿paddledetection配置文件风格)

yaml配置文件的解析可以有hydra库实现,也可以使用原生的yaml库进行解析,只不过是hydra库对于变量的表达类型更加丰富。同时,hydra库还支持在命令行上修改参数。但是,yaml与hydra库在解析配置文件时,并不支持配置文件的继承。也就是说,我们项目中的所有的配置文件必须写到一个文件中。这对于中小型项目还好,但是对于大型项目是不够的。且在一个机器学习项目中,经常会有一些公共的配置项目(如数据集加载与预处理配置),一些针对于算法的参数配置项(算法的结构、学习率、后处理参数等)。

1、什么是配置文件的继承

在上述描述中阐述了配置文件继承的必要性,那啥是配置文件的继承呢?下面以一段paddledetection中简单配置代码进行示例:
在下面配置文件中,由_BASE_项配置了该配置文件需要继承的配置项。这种继承关系是可以不断迭代的,可能在…/datasets/voc.yml文件中也配置了其他的配置项。


_BASE_: [
  '../datasets/voc.yml',
  '../runtime.yml',
  '_base_/optimizer_270e.yml'

猜你喜欢

转载自blog.csdn.net/a486259/article/details/125919893