Python/Jupyter notebook
[Jupyter notebook] argparse 오류
annual
2018. 6. 2. 11:48
argparse에서 parser 사용시 다음과 같은 에러 발생
usage: ipykernel_launcher.py [-h]
ipykernel_launcher.py: error: unrecognized arguments: --lr
An exception has occurred, use %tb to see the full traceback.
SystemExit: 2
/Users/username/lib/python3.6/site-packages/IPython/core/interactiveshell.py:2971: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)
아마 Jupiter notebook 때문인듯함
argparse 라이브러리를 사용하기 원한다면 터미널이나 다른 프레임워크에서 실행해야한다.
하지만 arguments를 parsing할 수 있는 방법이 없는건 아니다
easydict 라이브러리를 활용하는 방법이 있다.
밑의 두 코드는 argparse를 이용하는 경우와 easydict를 사용하는 경우를 나타냈다.
두 코드는 모두 args 변수에 같은 값을 저장한다.
argparse 버전
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | parser = argparse.ArgumentParser(description='Chainer example: MNIST') parser.add_argument('--batchsize', '-b', type=int, default=100, help='Number of images in each mini-batch') parser.add_argument('--epoch', '-e', type=int, default=20, help='Number of sweeps over the dataset to train') parser.add_argument('--gpu', '-g', type=int, default=-1, help='GPU ID (negative value indicates CPU)') 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() | cs |
👇🏻
easydict 버전
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import easydict args = easydict.EasyDict({ "batchsize": 100, "epoch": 20, "gpu": 0, "out": "result", "resume": False, "unit": 1000 }) | cs |