今日はPythonのArgumentParserの使い方を紹介します。
このライブラリはコマンドライン引数を扱うためのものです。
コマンドライン引数と言っても、JupyterNotebookで実行できますのでそのやり方もお教えします。
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を指定してヘルプを出力してみます。
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
それらしいヘルプが出てきました。
引数をパースして表示してみます。そのまま指定する場合と省略形それぞれで試してみます。
# 引数を解析 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)
出力は以下の通り。
batch_size = 200 epoch = 100 batch_size = 400 epoch = 1100
おわり。