Help us understand the problem. What is going on with this article?

Jupyter lab / notebookで argparseそのままで実行する方法

More than 1 year has passed since last update.

はじめに

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

https://blog.csdn.net/u012869752/article/details/72513141

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした