不使用dest时,argparse如何确定参数名称?

时间:2019-02-21 17:30:25

标签: python argparse

我对以下示例中使用的batch_size参数有疑问。

https://github.com/pytorch/examples/blob/master/imagenet/main.py#L150


parser.add_argument('-b', '--batch-size', default=256, type=int,
                    metavar='N',
                    # dest='batch_size' why this is not needed? 
                    help='mini-batch size (default: 256), this is the total '
                         'batch size of all GPUs on the current node when '
                         'using Data Parallel or Distributed Data Parallel')

# missing code

args.batch_size = int(args.batch_size / ngpus_per_node)

我的问题是没有dest参数,如何从命令行解析和保存batch_size

1 个答案:

答案 0 :(得分:3)

来自https://docs.python.org/2/library/argparse.html#dest

  

ArgumentParser通过获取第一个长选项字符串并去除初始的dest字符串来生成--的值   ...   任何内部-字符都将转换为_个字符,以确保该字符串是有效的属性名称

在这种情况下,long-option--batch-size,因此默认情况下dest设置为batch_size