PyTorch中参数与张量之间的差异
我想知道PyTorch参数和张量之间的区别PyTorch中参数与张量之间的差异,pytorch,Pytorch,我想知道PyTorch参数和张量之间的区别 现有的是用于使用变量的旧PyTorch?这是单个图像中参数类(附加)的全部思想 因为它是从张量的子类,所以它是一个张量 但有一个窍门。模块内部的参数将添加到模块参数列表中。如果m是您的模块,m.parameters()将保存您的参数 以下是一个例子: class M(nn.Module): def __init__(self): super().__init__() self.weights = nn.Para
现有的是用于使用变量的旧PyTorch?这是单个图像中
参数类(附加)的全部思想
因为它是从
张量
的子类,所以它是一个张量
但有一个窍门。模块内部的参数将添加到模块参数列表中。如果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
,它将不会显示在参数列表中。确实如此。没什么特别的。我还是不明白其中的区别。添加了一个小示例,您可以通过添加一个张量作为类属性来改进示例,并检查差异。如果您可以从用例的角度添加它们的差异,那就太好了。什么时候应该使用张量,什么时候应该使用参数。以下是文档: