Это вся идея класса Parameter
(прилагается) в одном изображении.
, так как он подклассифицирован изTensor
это Тензор.
Но тут есть хитрость.Параметры, которые находятся внутри модуля, добавляются в список параметров модуля.Если m
- это ваш модуль, m.parameters()
будет содержать ваш параметр.
Вот пример:
class M(nn.Module):
def __init__(self):
super().__init__()
self.weights = nn.Parameter(torch.randn(2, 2))
self.bias = nn.Parameter(torch.zeros(2))
def forward(self, x):
return x @ self.weights + self.bias
m=M()
m.parameters()
list(m.parameters())
---
[Parameter containing:
tensor([[ 0.5527, 0.7096],
[-0.2345, -1.2346]], requires_grad=True), Parameter containing:
tensor([0., 0.], requires_grad=True)]
Вы видите, как параметры будут показывать то, что мы определили.И если мы просто добавим тензор внутри класса, например self.t = Tensor
, он не будет отображаться в списке параметров.Это буквально это.Ничего особенного.