Python argparse 模块介绍
argparse
argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,可以方便程序执行的时候传递参数,下面将介绍一下具体的用法:
模块导入
由于是python内置的模块,直接import即可:
import argparse
简单例子
import argparse
parse = argparse.ArgumentParser()
parse.add_argument("--echo",type=str,required=False,default='alaoshi')
args = parse.parse_args()
print(args)
print(args.echo)
运行结果:Namespace(echo='zoujun')
zoujun
例子说明
- argparse.ArgumentParser(),生成解释器
- parse.add_argument(),为解释器设置参数
- args = parse.parse_args(),解析添加的参数
argparse.ArgumentParser()参数说明
decription-添加描述,不设置默认为None
其他包括(prog,fromfile_prefix_chars,argument_default),由于用的较少,不作介绍
parser=argparse.ArgumentParser(description="A description of what the program does")
parse.add_argument()参数说明`
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
参数详解
name or flags -指定传入的参数的形式,一般写两个(-,–)
action -命令行遇到参数时的动作
- store_true,表示有传参时把变量赋值true,否则为false;
- store_const,参数赋值const
- append,将遇到的值存储成列表
- count,存储遇到的次数
nargs -需要传入的参数个数,“?”表示0个或者一个参数,+ 号表示 1 或多个参数
const - action 和 nargs 所需要的常量值
type - 命令行参数应该被转换成的类型
required - 若为true,则必须输入参数,为false则必须设置default(只对可选参数)
choices - 候选值,输出参数必须在候选值里面
default - 不指定参数时的默认值
help - 参数的帮助信息
dest - 解析后的参数名称
-h:输出参数使用说明信息
具体的例子
def get_arguments():
"""Parse all the arguments provided from the CLI.
Returns:
A list of parsed arguments.
"""
parser = argparse.ArgumentParser(description="DeepLab-ResNet Network")
parser.add_argument("--batch-size", type=int, default=BATCH_SIZE,
help="Number of images sent to the network in one step.")
parser.add_argument("--data-dir", type=str, default=DATA_DIRECTORY,
help="Path to the directory containing the PASCAL VOC dataset.")
parser.add_argument("--data-list", type=str, default=DATA_LIST_PATH,
help="Path to the file listing the images in the dataset.")
parser.add_argument("--ignore-label", type=int, default=IGNORE_LABEL,
help="The index of the label to ignore during the training.")
parser.add_argument("--input-size", type=str, default=INPUT_SIZE,
help="Comma-separated string with height and width of images.")
parser.add_argument("--is-training", action="store_true",
help="Whether to updates the running means and variances during the training.")
parser.add_argument("--learning-rate", type=float, default=LEARNING_RATE,
help="Base learning rate for training with polynomial decay.")
parser.add_argument("--momentum", type=float, default=MOMENTUM,
help="Momentum component of the optimiser.")
parser.add_argument("--not-restore-last", action="store_true",
help="Whether to not restore last (FC) layers.")
parser.add_argument("--num-classes", type=int, default=NUM_CLASSES,
help="Number of classes to predict (including background).")
parser.add_argument("--num-steps", type=int, default=NUM_STEPS,
help="Number of training steps.")
parser.add_argument("--power", type=float, default=POWER,
help="Decay parameter to compute the learning rate.")
parser.add_argument("--random-mirror", action="store_true",
help="Whether to randomly mirror the inputs during the training.")
parser.add_argument("--random-scale", action="store_true",
help="Whether to randomly scale the inputs during the training.")
parser.add_argument("--random-seed", type=int, default=RANDOM_SEED,
help="Random seed to have reproducible results.")
parser.add_argument("--restore-from", type=str, default=RESTORE_FROM,
help="Where restore model parameters from.")
parser.add_argument("--save-num-images", type=int, default=SAVE_NUM_IMAGES,
help="How many images to save.")
parser.add_argument("--save-pred-every", type=int, default=SAVE_PRED_EVERY,
help="Save summaries and checkpoint every often.")
parser.add_argument("--snapshot-dir", type=str, default=SNAPSHOT_DIR,
help="Where to save snapshots of the model.")
parser.add_argument("--weight-decay", type=float, default=WEIGHT_DECAY,
help="Regularisation parameter for L2-loss.")
return parser.parse_args()
这个主要是为了传入多个神经网络的参数,参数待传的参数可以提前设置好
BATCH_SIZE = 10
DATA_DIRECTORY = '/home/VOCdevkit'
DATA_LIST_PATH = './dataset/train.txt'
IGNORE_LABEL = 255
INPUT_SIZE = '321,321'
LEARNING_RATE = 2.5e-4
MOMENTUM = 0.9
NUM_CLASSES = 21
NUM_STEPS = 20001
POWER = 0.9
RANDOM_SEED = 1234
RESTORE_FROM = './deeplab_resnet.ckpt'
SAVE_NUM_IMAGES = 2
SAVE_PRED_EVERY = 1000
SNAPSHOT_DIR = './snapshots/'
WEIGHT_DECAY = 0.0005
这个模块用的还是比较多的,但是不需要了解每个部分,只需要了解简单的传参和参数设置就行了。