我是 PyTorch 的新手。我一直在关注 PyTorch 创建简单线性回归模型的教程之一。
我已相应跟进,这是参考代码。
class LinearRegression(nn.Module):
def __init__(self):
super().__init__()
self.bias = nn.Parameter(torch.randn(1, requires_grad = True, dtype = torch.float))
self.weights = nn.Parameter(torch.randn(1, requires_grad = True, dtype = torch.float))
def forward(self, x: torch.Tensor) -> torch.Tensor:
return self.weights * x + bias
我使用 SGD 作为优化器,学习率为 0.01。并使用 MAE 作为损失函数。
无论我调整什么参数,偏置参数都不会改变。体重变化很好。
我见过一些 Stackoverflow 线程谈论克隆参数,但它在我的情况下不起作用。
我已经用以下方法初始化了模型:
torch.manual_seed(42)
model = LinearRegression()
list(model.parameters())
当我打印参数时,一切都很好。我哪里做错了。
您可能在转发函数中犯了一个错误,请尝试以下代码:
def forward(self, x: torch.Tensor) -> torch.Tensor:
return self.weights * x + self.bias # Fix here: Use self.bias instead of just bias