[ERROR] argparser 에러

qw4735·2023년 1월 10일

argparser 에러

⚙️[error 상황] main.py에서 argparse를 이용해 하이퍼파라미터를 셋팅한 후, main()함수를 돌렸을 때 다음과 같은 에러가 발생할 수 있다.

💡[solution1]argparse를 꼭 쓰고 싶은 경우!
parser.parser_args(args=[])을 다음과 같이 바꿔준다.

이 때, vars()함수는 argparse를 딕셔녀리화하는 함수인데(e.g args['lr']=0.0002) 이 경우에선 사용할 수 있는 방법을 찾지 못했다. 따라서, parser.parser_args()를 parse_known_args()로 바꾼 경우에는 해당 메서드를 인스턴스화 할 때, vars()를 쓰지 않는다.

args,_ = get_args(debug=True)
#args.lr=0.0002

💡[solution2] argparse를 안써도 되는 경우! easydict를 쓴다.

import easydict
args = easydict.EasyDict({
 	    "seed": 1,
        'latent_dim':128,
        'input_dim':5,
        'compress_dims':(128,128),
        'decompress_dims':(128.128),
        'num_epochs': 30,
        "batch_size": 64,
        "lr": 0.0002,
        'weight_decay':1e-5
 })
 #args.lr = 0.0002

code reference : https://github.com/an-seunghwan/synthesizers/blob/main/tvae/main.py
reference : https://www.peterbe.com/plog/vars-argparse-namespace-into-a-function
https://blog.naver.com/PostView.naver?blogId=shestory2015&logNo=221639995771

0개의 댓글