Worth spreading

[Jupyter notebook] argparse 오류 본문

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


Comments