hydra 在创建输出目录时如何管理时区?
how does hydra manages timezone when it creates output directories?
我有一个 .yaml 配置文件,如下所示:
key: value
hydra:
run:
dir: ./data_fetcher/hydra_outputs/${now:%Y-%m-%d}/${now:%H-%M-%S}
有一个 python 文件 main.py
:
import hydra
@hydra.main(config_path="data_fetcher/config", config_name="config")
def main(cfg: DictConfig):
pass
if __name__ == "__main__":
main()
当运行 main.py
根据当前日期和时间创建输出目录。
Hydra 是如何获取当前时间的?是否可以更改时区?
Hydra 正在注册一个简单的 OmegaConf 自定义解析器 here,其行如下:
register("now", lambda pattern: strftime(pattern, localtime()))
您可以在 @hydra.main()
运行之前用不同的名称注册您自己的自定义解析器,这将执行您想要的操作。
- 阅读 OmegaConf documentation 中的自定义解析器。
- 了解如何获取不同时区的时间 here。
您还可以提交功能请求以将时区支持添加到 Hydra 中的 ${now:...}
自定义解析。公关将不胜感激。
例如,${now:...}
可以支持可选的第二个时区参数。
我有一个 .yaml 配置文件,如下所示:
key: value
hydra:
run:
dir: ./data_fetcher/hydra_outputs/${now:%Y-%m-%d}/${now:%H-%M-%S}
有一个 python 文件 main.py
:
import hydra
@hydra.main(config_path="data_fetcher/config", config_name="config")
def main(cfg: DictConfig):
pass
if __name__ == "__main__":
main()
当运行 main.py
根据当前日期和时间创建输出目录。
Hydra 是如何获取当前时间的?是否可以更改时区?
Hydra 正在注册一个简单的 OmegaConf 自定义解析器 here,其行如下:
register("now", lambda pattern: strftime(pattern, localtime()))
您可以在 @hydra.main()
运行之前用不同的名称注册您自己的自定义解析器,这将执行您想要的操作。
- 阅读 OmegaConf documentation 中的自定义解析器。
- 了解如何获取不同时区的时间 here。
您还可以提交功能请求以将时区支持添加到 Hydra 中的 ${now:...}
自定义解析。公关将不胜感激。
例如,${now:...}
可以支持可选的第二个时区参数。