はじめに

Jupyter labやJupyter notebookが非常に便利なツールであることは言うまでもないことです。
しかし、落ちているブログラムをJupyterで編集しようとして、


def main():
    parser = argparse.ArgumentParser(description='ChainerMN example: MNIST')
    parser.add_argument('--batchsize', '-b', type=int, default=100,
                        help='Number of images in each mini-batch')
    parser.add_argument('--communicator', type=str,
                        default='hierarchical', help='Type of communicator')
    parser.add_argument('--epoch', '-e', type=int, default=20,
                        help='Number of sweeps over the dataset to train')
    parser.add_argument('--gpu', '-g', action='store_true',
                        help='Use GPU')
    parser.add_argument('--out', '-o', default='result',
                        help='Directory to output the result')
    parser.add_argument('--resume', '-r', default='',
                        help='Resume the training from snapshot')
    parser.add_argument('--unit', '-u', type=int, default=1000,
                        help='Number of units')
    args = parser.parse_args()

......

usage: ipykernel_launcher.py [-h] [--batchsize BATCHSIZE]
                             [--communicator COMMUNICATOR] [--epoch EPOCH]
                             [--gpu] [--out OUT] [--resume RESUME]
                             [--unit UNIT]
ipykernel_launcher.py: error: unrecognized arguments: -f /run/user/1218/jupyter/kernel-662a3733-81e6-4d71-9647-27185d96086a.json
An exception has occurred, use %tb to see the full traceback.

SystemExit: 2

この様なエラーメッセージに出くわしたことはありませんか?

コマンドライン引数は jupyter では対応できないんだ、なんて思っていませんか?

解決策

これを、

args = parser.parse_args()

こう変えます。

args = parser.parse_args(args=[])

なんとこれだけで、同様のエラーが出なくなり、
コマンドラインで実行しているようにJupyter上で実行できます。

ちなみに上の状態では全く引数を指定してない状態を示します。

引数の指定がある場合は

引数の指定がある際は、arg=[ ]の[ ]内に
コマンドラインで打ち込む順にリストに入れます。

例えば以下の様に引数を指定プログラム実行するとします。


$ python test.py --batchsize 200 --epoch 100 -g

この実行と同じ引数指定をして、jupyter上で実行する場合は、該当部分を、

args = parser.parse_args(args=['--batchsize','200','--epoch','100','-g'])

とすれば、実行できます。

皆さんよきJupyter生活を!!

reference

广告
将在 10 秒后关闭
bannerAds