diff --git a/pytorch_lightning/trainer/trainer.py b/pytorch_lightning/trainer/trainer.py index 9b27655675dc9..304d50800fcec 100644 --- a/pytorch_lightning/trainer/trainer.py +++ b/pytorch_lightning/trainer/trainer.py @@ -667,6 +667,16 @@ def add_argparse_args(cls, parent_parser: ArgumentParser) -> ArgumentParser: def allowed_type(x): return bool(parsing.strtobool(x)) + # Bool args with default of True parsed as flags not key value pair + if arg_types == (bool,) and arg_default is False: + parser.add_argument( + f'--{arg}', + action='store_true', + dest=arg, + help='autogenerated by pl.Trainer' + ) + continue + if arg == 'gpus': allowed_type = Trainer.allowed_type arg_default = Trainer.arg_default diff --git a/tests/trainer/test_trainer_cli.py b/tests/trainer/test_trainer_cli.py index fdc78d43fe288..9b0e64dfefb7a 100644 --- a/tests/trainer/test_trainer_cli.py +++ b/tests/trainer/test_trainer_cli.py @@ -30,7 +30,7 @@ def test_default_args(tmpdir): @pytest.mark.parametrize('cli_args', [ ['--accumulate_grad_batches=22'], - ['--print_nan_grads=1', '--weights_save_path=./'], + ['--print_nan_grads', '--weights_save_path=./'], [] ]) def test_add_argparse_args_redefined(cli_args):