Summary
argparseは、コマンドラインオプションを簡単に実装できるpythonモジュールです。特に実験で大量のパラメータを用意する必要がある時に大変重宝します。一方で実験結果とともに使用したパラメータを保存したい状況は結構あると思われます。ここでは__argparseに渡された引数を、人間にも読みやすいJSON形式で保存するコード__を共有します。
Snippet
ポイントは__dict__
を用いることでargparseに渡された引数をdict()
に変換している点です。
後は、json
に渡しインデントを追加することで、可読性の高い形で保存することができます。
main.py
import json
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--param1", type=str, default="test")
parser.add_argument("--param2", type=int, default=100)
parser.add_argument("--param3", type=float, nargs="+", default=[0.1, 0.2, 0.3])
args = parser.parse_args()
with open("./params.json", mode="w") as f:
json.dump(args.__dict__, f, indent=4)
params.json
{
"param1": "test",
"param2": 100,
"param3": [
0.1,
0.2,
0.3
]
}