According to the document, nn.Parameter will:

they are automatically added to the list of its parameters, and will appear e.g. in parameters() iterator

and nn.Module.register_parameter will

Adds a parameter to the module.

I wonder since nn.Parameter will add tensor into parameters automatically, why we need register_parameter function?