小编Rac*_*hel的帖子

如何从以前的作业加载 Hydra 参数(无需使用 argparse 和 compose API)?

我正在使用 Hydra 来训练机器学习模型。它非常适合执行复杂的命令,例如python train.py data=MNIST batch_size=64 loss=l2. 但是,如果我想使用相同的参数运行经过训练的模型,我必须执行类似的操作python reconstruct.py --config_file path_to_previous_job/.hydra/config.yaml。然后,我使用argparse加载前面的 yaml 并使用 compose API 来初始化 Hydra 环境。训练模型的路径是从 Hydra 文件的路径推断出来的.yaml。如果我想修改其中一个参数,我必须添加其他argparse参数并运行类似python reconstruct.py --config_file path_to_previous_job/.hydra/config.yaml --batch_size 128. 然后,代码手动使用命令行上指定的参数覆盖任何 Hydra 参数。

这样做的正确方法是什么?

我当前的代码如下所示:

train.py:

import hydra

@hydra.main(config_name="config", config_path="conf")
def main(cfg):
    # [training code using cfg.data, cfg.batch_size, cfg.loss etc.]
    # [code outputs model checkpoint to job folder generated by Hydra]
main()
Run Code Online (Sandbox Code Playgroud)

reconstruct.py:

import argparse
import os
from hydra.experimental import initialize, …
Run Code Online (Sandbox Code Playgroud)

fb-hydra

5
推荐指数
1
解决办法
2589
查看次数

标签 统计

fb-hydra ×1