Learning rate loaded as Namespace from argparse
🐛 Bug
When I'm loading the model with argument from ArgumentParser I receive a strange output with learning_rate being treated as argparse Namespace.
To Reproduce
Here is my basic class that saves hyperparameters.
from argparse import ArgumentParser

import pytorch_lightning as pl


class Trial(pl.LightningModule):
    """Pytorch lightning based class which provides training logic."""

    def __init__(self, learning_rate: float = 1e-5, adam_epsilon: float = 1e-8, warmup_steps: int = 0,
            min_epochs: int = 5, num_encoder_layers_to_train: int = 2, ):
        super(Trial, self).__init__()
        self.save_hyperparameters()

    @staticmethod
    def add_model_specific_args(parent_parser):
        parser = ArgumentParser(parents=[parent_parser], add_help=False)
        parser.add_argument("--learning_rate", default=1e-5, type=float)
        parser.add_argument("--adam_epsilon", default=1e-8, type=float)
        parser.add_argument("--warmup_steps", default=0, type=int)
        parser.add_argument("--num_encoder_layers_to_train", default=2, type=int)
        return parser


if I call:
model = Trial()
the output is like that:
"adam_epsilon":                1e-08

"learning_rate":               1e-05

"min_epochs":                  5

"num_encoder_layers_to_train": 2

"warmup_steps":                0

However after model instance in such a way:
def parse_args(args=None):
    parser = ArgumentParser()
    parser = Trial.add_model_specific_args(parser)
    opt, unknown = parser.parse_known_args(args)
    return opt


def setup(args):
    model = Trial(args)
    return model

args = parse_args()
model = setup(args)

I receive:
"adam_epsilon":                1e-08

"learning_rate":               Namespace(adam_epsilon=1e-08, learning_rate=1e-05, num_encoder_layers_to_train=2, warmup_steps=0)

"min_epochs":                  5

"num_encoder_layers_to_train": 2

"warmup_steps":                0

Expected behavior
Output from the argparse is the same as the basic one and there is no problem with parameters being treated as Namespace.
Environment
Checked on Colab, link:
https://colab.research.google.com/drive/1txQKsOiTDNpyVr8Ih_NnGk4S9ZR_0M13?usp=sharing
Thank you for your response.