目录
项目参数设置往往会放在train 或 test 文件中,用的 argparse 对象。如下述代码的呈现,可以看到args 是参数对象,main才是要处理的业务流程。
def parse_args():
import argparse
parser = argparse.ArgumentParser(description='GAN Training')
parser.add_argument('-d', '--device', default='cuda', help='device')
parser.add_argument('-ds', '--dataset', default='flat', type=str, help='dataset name')
parser.add_argument('-fs', '--file-size', default=None, type=str, help='number of samples in each npy file')
# Path related
# Model related
# Training related
# Loss related
# Distributed training related
# Tensorboard related
parser.add_argument('--tensorboard', action='store_true', help='Use tensorboard for logging.')
args = parser.parse_args()
args.output_path = os.path.join(args.output_path, args.save_name, args.suffix or '')
args.log_path = os.path.join(args.log_path, args.save_name, args.suffix or '')
args.train_anno = os.path.join(args.anno_path, args.train_anno)
args.val_anno = os.path.join(args.anno_path, args.val_anno)
args.epochs = args.epoch_block * args.num_block
if args.resume:
args.resume = os.path.join(args.output_path, args.resume)
return args
if __name__ == '__main__':
args = parse_args()
main(args)
argparse 对象的用法
1、导入库
import argparse
2、定义命令行解析器对象
parser = argparse.ArgumentParser(description='GAN Training')
3、添加命令行参数
parser.add_argument('-ds', '--dataset', default='flat', type=str, help='dataset name')
4、从命令行中结构化解析参数
args = parser.parse_args()
5、 取对象的成员变量进行修改
args.output_path = os.path.join(args.output_path, args.save_name, args.suffix or '')
当然这种操作,也可以用来添加成员,epochs 就是新添加的成员。
args.epochs = args.epoch_block * args.num_block