我正在尝试从 github 重现管道。由于想法是重现它,所以我不想更改代码。 Onde 脚本要求将超参数作为字典传递,如下所示
-p {'param1' : 'p1', 'param1' : 'p2' ...}
等等。这些参数使用 argparse 进行处理。
我有一长串参数。是否可以将超参数字典作为文件传递?
谢谢!
如果您根本不想修改原始脚本,您可以创建一个包装器脚本,从 JSON 中读取参数(我们称之为 params.json),然后使用这些参数调用原始脚本。
{
"param1": "p1",
"param2": "p2"
}
并使用以下方法传递它:
params=$(cat params.json)
python your_script.py -p "$params"
argparse
本身将以@
开头的参数视为文件名,它应该从中读取更多参数,每行一个。因此,如果您创建一个名为 args.txt
的文件,其中包含
-p
{'param1' : 'p1', 'param1' : 'p2' ...}
(假设“字典”确实应该作为单个参数传递)然后
script.py @args.txt
应等于
script.py -p "{'param1': 'p1', 'param2': 'p2'}"