Как argparse определяет имена аргументов, когда dest не используется? - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть вопросы по поводу аргумента 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 голосов
/ 21 февраля 2019

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

ArgumentParser генерирует значение dest, беря первую длинную строку параметров и удаляя начальную -- строку ... Любую внутреннюю -символы будут преобразованы в _ символов, чтобы убедиться, что строка является допустимым именем атрибута

В этом случае long-option равно --batch-size, поэтому по умолчанию dest установлено на batch_size

...