今日はPythonのArgumentParserの使い方を紹介します。
このライブラリはコマンドライン引数を扱うためのものです。
コマンドライン引数と言っても、JupyterNotebookで実行できますのでそのやり方もお教えします。
1 2 3 4 5 6 7 8 9 10 11 |
import argparse parser = argparse.ArgumentParser(description='機械学習を行うコード') # parser.add_argumentで受け取る引数を追加していく parser.add_argument('--batch_size', '-b', help='バッチサイズを指定してね') parser.add_argument('--epoch', '-e', help='エポックサイズを指定してね') # ヘルプを表示する args = parser.parse_args(args=['-h']) |
何をしているのかというと、
add_argument
でこのコードが取りうる引数を追加しています。
parse_args
を使うと引数をパースすることができます。Jupyterで実行するときはこの中にargs=[‘-h’]のようにコマンドライン引数を指定します。
上の例では、-hを指定してヘルプを出力してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
usage: ipykernel_launcher.py [-h] [--batch_size BATCH_SIZE] [--epoch EPOCH] 機械学習を行うコード optional arguments: -h, --help show this help message and exit --batch_size BATCH_SIZE, -b BATCH_SIZE バッチサイズを指定してね --epoch EPOCH, -e EPOCH エポックサイズを指定してね An exception has occurred, use %tb to see the full traceback. SystemExit: 0 |
それらしいヘルプが出てきました。
引数をパースして表示してみます。そのまま指定する場合と省略形それぞれで試してみます。
1 2 3 4 5 6 7 8 9 10 11 |
# 引数を解析 args=[]を指定することでjupyter上でも引数の指定が可能になる args = parser.parse_args(args=['--batch_size','200','--epoch','100']) print('batch_size = '+args.batch_size) print('epoch = '+args.epoch) # 省略系で指定する args = parser.parse_args(args=['-b','400','-e','1100']) print('batch_size = '+args.batch_size) print('epoch = '+args.epoch) |
出力は以下の通り。
1 2 3 4 |
batch_size = 200 epoch = 100 batch_size = 400 epoch = 1100 |
おわり。