def init_args():
    arg_parser = argparse.ArgumentParser()
    arg_parser.add_argument('--data_path', default=(os.path.dirname(os.path.abspath(__file__)) + '/data'), type=str, help='Data path.')
    arg_parser.add_argument('--load_data', default=False, type=bool, help='Load data.')
    arg_parser.add_argument('--data', choices=['wikisql', 'spider', 'overnight', 'overnight_set'], default='wikisql', help='data to train & test')
    arg_parser.add_argument('--subset', choices=['all'], default='all', help='Subset of data.')
    arg_parser.add_argument('--maxlen', default=60, type=int, help='Data record max length.')
    arg_parser.add_argument('--annotation_path', default=(os.path.dirname(os.path.abspath(__file__)) + '/data/DATA/wiki/'), type=str, help='Data annotation path.')
    arg_parser.add_argument('--mode', choices=['train', 'infer', 'transfer', 'txt'], default='infer', help='Run mode')
    arg_parser.add_argument('--cell', choices=['gru'], default='gru', help='Type of cell used, currently only standard GRU cell is supported')
    arg_parser.add_argument('--output_vocab_size', default=20637, type=int, help='Output vocabulary size.')
    arg_parser.add_argument('--embedding_dim', default=300, type=int, help='Size of word embeddings')
    arg_parser.add_argument('--dim', default=400, type=int, help='Size of GRU hidden states')
    arg_parser.add_argument('--hidden_size', default=256, type=int, help='Size of LSTM hidden states')
    arg_parser.add_argument('--no_copy', default=False, action='store_true', help='Do not use copy mechanism')
    arg_parser.add_argument('--vocab', type=str, help='Path of the serialized vocabulary')
    arg_parser.add_argument('--glove_embed_path', default=None, type=str, help='Path to pretrained Glove mebedding')
    arg_parser.add_argument('--batch_size', default=128, type=int, help='Batch size')
    arg_parser.add_argument('--in_drop', default=0.0, type=float, help='In dropout rate')
    arg_parser.add_argument('--out_drop', default=0.0, type=float, help='Out dropout rate')
    arg_parser.add_argument('--valid_epoch_interval', default=1, type=int, help='Perform validation every x epoch')
    arg_parser.add_argument('--clip_grad', default=5.0, type=float, help='Clip gradients')
    arg_parser.add_argument('--total_epochs', default=40, type=int, help='# of training epoches')
    arg_parser.add_argument('--epochs', default=1, type=int, help='Record per x epoches')
    arg_parser.add_argument('--lr', default=0.0001, type=float, help='Learning rate')
    arg_parser.add_argument('--lr_decay', default=0.5, type=float, help='decay learning rate if the validation performance drops')
    arg_parser.add_argument('--load_model', default=False, type=bool, help='Whether to load model')
    arg_parser.add_argument('--beam_width', default=5, type=int, help='Beam size for beam search')
    arg_parser.add_argument('--decode_max_time_step', default=100, type=int, help='Maximum number of time steps used in decoding and sampling')
    args = arg_parser.parse_args()
    return args
def init_args():
    arg_parser = argparse.ArgumentParser()
    arg_parser.add_argument('--data_path', default=(os.path.dirname(os.path.abspath(__file__)) + '/data'), type=str, help='Data path.')
    arg_parser.add_argument('--load_data', default=False, type=bool, help='Load data.')
    arg_parser.add_argument('--data', choices=['wikisql', 'spider', 'overnight', 'overnight_set'], default='wikisql', help='data to train & test')
    arg_parser.add_argument('--subset', choices=['all'], default='all', help='Subset of data.')
    arg_parser.add_argument('--maxlen', default=60, type=int, help='Data record max length.')
    arg_parser.add_argument('--annotation_path', default=(os.path.dirname(os.path.abspath(__file__)) + '/data/DATA/wiki/'), type=str, help='Data annotation path.')
    arg_parser.add_argument('--mode', choices=['train', 'infer', 'transfer', 'txt'], default='infer', help='Run mode')
    arg_parser.add_argument('--cell', choices=['gru'], default='gru', help='Type of cell used, currently only standard GRU cell is supported')
    arg_parser.add_argument('--output_vocab_size', default=20637, type=int, help='Output vocabulary size.')
    arg_parser.add_argument('--embedding_dim', default=300, type=int, help='Size of word embeddings')
    arg_parser.add_argument('--dim', default=400, type=int, help='Size of GRU hidden states')
    arg_parser.add_argument('--hidden_size', default=256, type=int, help='Size of LSTM hidden states')
    arg_parser.add_argument('--no_copy', default=False, action='store_true', help='Do not use copy mechanism')
    arg_parser.add_argument('--vocab', type=str, help='Path of the serialized vocabulary')
    arg_parser.add_argument('--glove_embed_path', default=None, type=str, help='Path to pretrained Glove mebedding')
    arg_parser.add_argument('--batch_size', default=128, type=int, help='Batch size')
    arg_parser.add_argument('--in_drop', default=0.0, type=float, help='In dropout rate')
    arg_parser.add_argument('--out_drop', default=0.0, type=float, help='Out dropout rate')
    arg_parser.add_argument('--valid_epoch_interval', default=1, type=int, help='Perform validation every x epoch')
    arg_parser.add_argument('--clip_grad', default=5.0, type=float, help='Clip gradients')
    arg_parser.add_argument('--total_epochs', default=40, type=int, help='# of training epoches')
    arg_parser.add_argument('--epochs', default=1, type=int, help='Record per x epoches')
    arg_parser.add_argument('--lr', default=0.0001, type=float, help='Learning rate')
    arg_parser.add_argument('--lr_decay', default=0.5, type=float, help='decay learning rate if the validation performance drops')
    arg_parser.add_argument('--load_model', default=False, type=bool, help='Whether to load model')
    arg_parser.add_argument('--beam_width', default=5, type=int, help='Beam size for beam search')
    arg_parser.add_argument('--decode_max_time_step', default=100, type=int, help='Maximum number of time steps used in decoding and sampling')
    args = arg_parser.parse_args()
    return args