argparse는 python3에 기본적으로 들어있는 pytyhon input variable 처리 라이브러리다.
사용법>
def main(): # Training settings parser = argparse.ArgumentParser(description='PyTorch MNIST Example') parser.add_argument('--batch-size', type=int, default=64, metavar='N', help='input batch size for training (default: 64)') parser.add_argument('--test-batch-size', type=int, default=1000, metavar='N', help='input batch size for testing (default: 1000)') parser.add_argument('--epochs', type=int, default=10, metavar='N', help='number of epochs to train (default: 10)') parser.add_argument('--lr', type=float, default=0.01, metavar='LR', help='learning rate (default: 0.01)') parser.add_argument('--momentum', type=float, default=0.5, metavar='M', help='SGD momentum (default: 0.5)') parser.add_argument('--no-cuda', action='store_true', default=False, help='disables CUDA training') parser.add_argument('--seed', type=int, default=1, metavar='S', help='random seed (default: 1)') parser.add_argument('--log-interval', type=int, default=10, metavar='N', help='how many batches to wait before logging training status') parser.add_argument('--save-model', action='store_true', default=False, help='For Saving the current Model') args = parser.parse_args() ## 본문시행.. if __name__ == '__main__': main()
그러나, jupyter 와 같은 ipython환경에선 동작하지 않고, 변수선언을 따로 해주면 console에서 돌릴때와 코드가 구분되어야하고 귀찮음.
그럴때 easydict을 쓰면 args형태를 만들수있다 .
import easydict args = easydict.EasyDict({ "batchsize": 100, "epoch": 20, "gpu": 0, "out": "result", "resume": False, "unit": 1000 })
또는 console 에서 입력하는 input parameter을 이런식으로 사용할수도 있음.
ex) python -s 5000 ./graphdata/graph.data
args_str = '-s 5000 ./graphdata/graph.data'
FLAGS, _ = parser.parse_known_args(args=args_str.split())
gs = main(FLAGS)
반응형
'Programming > python' 카테고리의 다른 글
matplotlib, networkx에서 한글사용하기(windows) (0) | 2019.07.17 |
---|---|
pandas에서 주의할점. np.where과 섞어쓰지 말자 (0) | 2019.07.09 |
VScode에 jupyter notebook, ipython 사용하기 (0) | 2019.05.16 |
[python] python, 32bit, 64bit 확인 (0) | 2019.04.01 |
[python] 파이썬 xlsx 쓰기, openpyxl (0) | 2019.03.19 |