【问题标题】:Handling high number of configuration parameters in python在 python 中处理大量配置参数
【发布时间】:2022-09-29 11:54:44
【问题描述】:

在我的机器学习项目中,我有大量从配置文件加载的参数,例如一个 YAML 文件。我想知道,除了一些 \'setup_by_cfg\' 函数之外,还有其他关于如何将它们集成到代码库中的最佳实践吗?我在考虑类方法,但随后实现与可能有问题的参数文件耦合?

# option A
# setup_by_cfg.py

def setup_a(cfg):
    return A(a=cfg.a, b=cfg.b)

def setup_b(cfg):
    ...
# option B
# coupled in class implementation

class A:
    # ...
    @classmethod
    def from_cfg(cls, cfg):
        return cls(a=cfg.a, b=cfg.b)


class B:
    # ...
    @classmethod
    def from_cfg(cls, cfg):
        # ...

    标签: python config hydra omegaconf


    【解决方案1】:

    Hydra 的instantiate API 可能非常适合您。使用此 API,您将通过在具有特殊 _target_ 键的配置上调用 instantiate 来创建类 A 和类 B 的实例:

    from hydra.utils import instantiate
    
    ...
    
    a_instance = instantiate(cfgA)
    b_instance = instantiate(cfgB)
    

    【讨论】:

      猜你喜欢
      • 2016-06-20
      • 2020-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多