Skip to content

Support Trainer.add_argparse_args for ArgumentGroup #3076

@carmocca

Description

@carmocca

🚀 Feature

Support Trainer.add_argparse_args for argparse._ArgumentGroup

Motivation

Adding all of the Trainers args to an existing parser clutters its help message with many arguments. Ideally, I would like to have these in a separate argument group.

Pitch

Currently:

parser = argparse.ArgumentParser()
parser.add_argument("--my_arg")
parser = pl.Trainer.add_argparse_args(parser)
parser.print_help()
usage: script.py [-h] [--my_arg MY_ARG] [--logger [LOGGER]] [--checkpoint_callback [CHECKPOINT_CALLBACK]] [--early_stop_callback [EARLY_STOP_CALLBACK]] [--default_root_dir DEFAULT_ROOT_DIR] [--gradient_clip_val GRADIENT_CLIP_VAL] (... and many more)

optional arguments:
  -h, --help            show this help message and exit
  --my_arg MY_ARG
  --logger [LOGGER]     autogenerated by pl.Trainer
  --checkpoint_callback [CHECKPOINT_CALLBACK]
                        autogenerated by pl.Trainer
  --early_stop_callback [EARLY_STOP_CALLBACK]
                        autogenerated by pl.Trainer
  --default_root_dir DEFAULT_ROOT_DIR
                        autogenerated by pl.Trainer
  --gradient_clip_val GRADIENT_CLIP_VAL
                        autogenerated by pl.Trainer
  (... and many more)

Desired:

parser = argparse.ArgumentParser()
parser.add_argument("--my_arg")
pl_parser = parser.add_argument_group(title="pytorch-lightning Trainer arguments")
pl_parser = pl.Trainer.add_argparse_args(pl_parser)
parser.print_help()
usage: script.py [-h] [--my_arg MY_ARG] [--logger [LOGGER]] [--checkpoint_callback [CHECKPOINT_CALLBACK]] [--early_stop_callback [EARLY_STOP_CALLBACK]] [--default_root_dir DEFAULT_ROOT_DIR] [--gradient_clip_val GRADIENT_CLIP_VAL] (... and many more)

optional arguments:
  -h, --help            show this help message and exit
  --my_arg MY_ARG

pytorch-lightning Trainer arguments:
  --logger [LOGGER]     autogenerated by pl.Trainer
  --checkpoint_callback [CHECKPOINT_CALLBACK]
                        autogenerated by pl.Trainer
  --early_stop_callback [EARLY_STOP_CALLBACK]
                        autogenerated by pl.Trainer
  --default_root_dir DEFAULT_ROOT_DIR
                        autogenerated by pl.Trainer
  --gradient_clip_val GRADIENT_CLIP_VAL
                        autogenerated by pl.Trainer
  (... and many more)

Metadata

Metadata

Assignees

Labels

discussionIn a discussion stagefeatureIs an improvement or enhancementhelp wantedOpen to be worked onwon't fixThis will not be worked on

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions