Python Code

Config 파일 관리 (argparse)

Kimhj 2023. 10. 10. 14:53

 

  • Config 를 관리할 때, yaml 형식 외에 argparse 도 많이 사용되는 듯 하다. 아직 익숙하진 않지만, 터미널에서 옵션값을 별도로 줄 수 있어서 CLI Environment 에서 활용하기에 좋을 것 같다.
import argparse


if __name__ == "__main__":
	# -- 다음에는 parameter 입력하고, default 값과 type, help 옵션을 설정한다. 
    
    parser = argparse.ArgumentParser(description='Vision Transformer')
    parser.add_argument('--img_size', default=32, type=int, help='image size')
    parser.add_argument('--patch_size', default=4, type=int, help='patch size')
    parser.add_argument('--batch_size', default=128, type=int, help='batch size')
    parser.add_argument('--save_acc', default=50, type=int, help='val acc')
    parser.add_argument('--epochs', default=501, type=int, help='training epoch')
    parser.add_argument('--lr', default=2e-3, type=float, help='learning rate')
    parser.add_argument('--drop_rate', default=.1, type=float, help='drop rate')
    parser.add_argument('--weight_decay', default=0, type=float, help='weight decay')
    parser.add_argument('--num_classes', default=10, type=int, help='number of classes')
    parser.add_argument('--latent_vec_dim', default=128, type=int, help='latent dimension')
    parser.add_argument('--num_heads', default=8, type=int, help='number of heads')
    parser.add_argument('--num_layers', default=12, type=int, help='number of layers in transformer')
    parser.add_argument('--dataname', default='cifar10', type=str, help='data name')
    parser.add_argument('--mode', default='train', type=str, help='train or evaluation')
    parser.add_argument('--pretrained', default=0, type=int, help='pretrained model')
    args = parser.parse_args()
    print(args)
    
    # 사용시에는 아래와 같이 활용한다.
    num_patches = int((args.img_size * args.img_size) / (args.patch_size * args.patch_size))