我正在使用 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 ×1