Python argparse 模块介绍

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

例子说明

  1. argparse.ArgumentParser(),生成解释器
  2. parse.add_argument(),为解释器设置参数
  3. 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 -命令行遇到参数时的动作

  1. store_true,表示有传参时把变量赋值true,否则为false;
  2. store_const,参数赋值const
  3. append,将遇到的值存储成列表
  4. 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

这个模块用的还是比较多的,但是不需要了解每个部分,只需要了解简单的传参和参数设置就行了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值