# Source code for torch.nn.parameter

import torch
from collections import OrderedDict

[docs]class Parameter(torch.Tensor):
r"""A kind of Tensor that is to be considered a module parameter.

Parameters are :class:~torch.Tensor subclasses, that have a
very special property when used with :class:Module s - when they're
assigned as Module attributes they are automatically added to the list of
its parameters, and will appear e.g. in :meth:~Module.parameters iterator.
Assigning a Tensor doesn't have such effect. This is because one might
want to cache some temporary state, like last hidden state of the RNN, in
the model. If there was no such class as :class:Parameter, these
temporaries would get registered too.

Arguments:
data (Tensor): parameter tensor.
:ref:excluding-subgraphs for more details. Default: True
"""

if data is None:
data = torch.Tensor()

def __deepcopy__(self, memo):
if id(self) in memo:
return memo[id(self)]
else: