- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在加载 Hydra 配置后添加一个键 + 值。基本上我想运行我的代码并检查 gpu 是否可用。如果是,则将设备记录为 gpu,否则保留 cpu。
基本上保存了以下输出:
torch.cuda.is_available()
当我尝试添加带有“setdefault”的键时:
@hydra.main(config_path="conf", config_name="config")
def my_app(cfg: DictConfig) -> None:
cfg.setdefault("new_key", "new_value")
如果我做同样的错误:
cfg.new_key = "new_value"
print(cfg.new_key)
我收到错误:
omegaconf.errors.ConfigKeyError: Key 'new_key' is not in struct
full_key: new_key
reference_type=Optional[Dict[Union[str, Enum], Any]]
object_type=dict
我目前的解决方法是只使用 OmegaConfig:
cfg = OmegaConf.structured(OmegaConf.to_yaml(cfg))
cfg.new_key = "new_value"
print(cfg.new_key)
>>>> new_value
当然必须有更好的方法来做到这一点?
最佳答案
Hydra 在它生成的 OmegaConf 配置对象的根上设置结构标志。
见 this有关结构标志的更多信息。
您可以使用 open_dict() 暂时禁用此功能并允许添加新 key :
>>> from omegaconf import OmegaConf,open_dict
>>> conf = OmegaConf.create({"a": {"aa": 10, "bb": 20}})
>>> OmegaConf.set_struct(conf, True)
>>> with open_dict(conf):
... conf.a.cc = 30
>>> conf.a.cc
30
关于python - 从 python 文件在 hydra DictConfig 中创建一个新 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66295334/
我正在尝试使用配置文件来配置 Python 日志记录,但也在加载 dict 配置后添加处理程序。所以我的配置文件就像 version: 1 formatters: default_formatte
我想为 Django 项目设置一个 Sentry 记录器。我将定义一个 sentry 处理程序,并将该处理程序放入具有 error 级别的根记录器中。 根据 logging 的文档模块,有一个特殊的
当我尝试使用命名记录器为每个模块编写日志时,我希望如果没有专门为命名记录器配置的处理程序,日志将传播到根记录器。这在我使用 basicConfig 时工作正常,但是当我使用 dictConfig 时,
当我尝试使用命名记录器为每个模块编写日志时,我希望如果没有专门为命名记录器配置的处理程序,日志将传播到根记录器。这在我使用 basicConfig 时工作正常,但是当我使用 dictConfig 时,
我想使用 Notifiers Django 中的日志处理程序。我使用 dictConfig 语法指定了记录器。 以下是来自 Notifer 自己的文档的示例: >>> import logging >
我的问题是:Python 日志记录配置无法使用配置文件和多重处理来工作。 我使用的是python2.7。 示例 这是我的example.py: import json import logging i
我正在使用 logging.config.dictConfig() 设置使用 FileHandler 和 RotatingFileHandler 登录文件。多次调用 dictConfig() 是不好的
注意 我知道 this answer但这对我不起作用,我希望有一个完整的、独立的工作示例。 我正在尝试用 Python (2.7) 中的 dictConfig 替换 logging.basicConf
我正在使用 dictConfig设置日志记录。我的要求之一是将格式化程序的默认转换器(我为我的所有处理程序使用单个格式化程序 simpleFormatter)更改为 time.gmtime。这将完成
在我的代码中,我有以下详细模式和非详细模式。我正在读取 logDict 对象。 我希望在详细模式下,我会将 "DEBUG MODE: test debug" 和 "DEBUG MODE: test e
我正在使用以下 dictConfig 作为记录器。但是,我无法在运行时修改日志记录级别。 #log_config.json 的内容 { "version": 1, "disable_e
这段代码有什么问题?它将 Whatsup 输出到 stdOut,而没有输出到/tmp 中的文件。它创建了文件,但没有写入任何内容,即使在记录数据负载 ('w'*20000) 时也不写入。我检查后似乎也
我有 2 个记录器 logger = logger_setup.get_logger_setup(env, logger_name = 'root', report_to_logging_servi
在哪里可以找到 Python 日志处理程序的配置选项列表?例如,docs假设 TimedRotatingFileHandler 采用“when”参数。如何使用 dictConfig 来定义它? 像这样
我想将 logging.config.dictConfig 与 json 配置文件一起使用。但我想使用另一个类的格式化程序:pythonjsonlogger.jsonlogger.JsonFormat
我的目标是创建一个“日志”应用程序,除了我的主应用程序之外,它将用于几个自定义处理程序类、过滤器等,以及其他错误和统计报告。但是在为我的 Django 项目运行开发服务器时,我收到错误: File
我的模块中有以下 ColoeredFormatter。 但是格式化程序不会被调用。我希望在控制台上显示“hi”,但我得到“这是根记录器的信息”。 我已经删除了所有 .pyc 文件,但没有帮助。 MyM
如何使用 dictConfig ?我应该如何指定它的输入 config 字典? 最佳答案 这里怎么样!相应的文档引用是 configuration-dictionary-schema . LOGGIN
在 Python 中使用 dictConfig 设置日志记录的示例显示了在 Python 脚本中创建的字典。我想使用配置文件,但文档说 fileConfig 比 dictConfig 更旧且功能更差。
我想在我的新 PaaS python 应用程序中尝试 Loggly,因为我通常针对 Linux 服务器进行编码,并且只使用标准旋转文件处理程序。这提出了一个问题,因为他们记录的配置仅涵盖使用 .con
我是一名优秀的程序员,十分优秀!