我想知道PyTorch参数和Tensor之间的区别吗?
现有的answer是用于使用变量的旧PyTorch?
答案 0 :(得分:0)
这是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
,则它不会显示在参数列表中。就是这样。没什么。