argparse 的作用
argparse是python标准库里面用来处理命令行参数的库,其目的就是为py文件封装好可以选择的参数。举个例子:在Linux系统中,我们常用到 ls 这个命令,默认情况下 ls 会显示当前目录的所有文件或文件夹名称,但是当我们想要获得更多信息,如文件的权限、建立时间等,就需要在 ls 命令后加上 -all 或其他被允许的指令。因此对 ls 这个命令而言,假设我们想改变程序的行为,显示每个文件的更多信息,就需要加上参数。 在这种情况下,-all 被称为可选参数。同样的, ls 还具有 -h 这个可以选择的参数,这表示打开帮助文本。
argparse 的使用步骤
- import argparse 首先导入模块
- parser = argparse.ArgumentParser() 创建一个解析对象;一般只使用 description这个方法参数
- parser.add_argument() 向该对象中添加你要关注的命令行参数和选项
- parser.parse_args() 进行解析
举例
# Step 1
import argparse
# Step 2
parser = argparse.ArgumentParser(description='')
# Step 3
parser.add_argument('--epoch', dest='epoch', type=int, default=50, help='# of epoch')
parser.add_argument('--batch_size', dest='batch_size', type=int, default=128, help='# images in batch')
parser.add_argument('--lr', dest='lr', type=float, default=0.001, help='initial learning rate for adam')
parser.add_argument('--use_gpu', dest='use_gpu', type=int, default=1, help='gpu flag, 1 for GPU and 0 for CPU')
parser.add_argument('--sigma', dest='sigma', type=int, default=25, help='noise level')
parser.add_argument('--phase', dest='phase', default='train', help='train or test')
parser.add_argument('--checkpoint_dir', dest='ckpt_dir', default='./checkpoint', help='models are saved here')
parser.add_argument('--sample_dir', dest='sample_dir', default='./sample', help='sample are saved here')
parser.add_argument('--test_dir', dest='test_dir', default='./test', help='test sample are saved here')
parser.add_argument('--eval_set', dest='eval_set', default='Set12', help='dataset for eval in training')
parser.add_argument('--test_set', dest='test_set', default='BSD68', help='dataset for testing')
# Step 4
args = parser.parse_args()
- dest - 设置这个选项的value解析出来后放到哪个属性中
- type - 指定参数类型
- default - 参数默认值
- help - 帮助文档