You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch简单线性回归模型训练失败,请求原因排查

问题排查与修复

核心问题:学习率设置过高

你的代码中优化器的学习率设为lr=1e2(即100),这对于线性回归这类简单任务来说过大。当学习率过高时,参数更新的步长会远超合理范围,直接导致模型参数跳到损失极大的区域,后续梯度计算出现异常(如无穷大或NaN),最终使得优化器无法继续更新参数——这就是参数始终保持初始值、损失值固定不变的原因。

修复方法

将学习率调低至合理范围,比如lr=1e-2(0.01)或lr=5e-3(0.005),可根据训练情况微调。修改后的优化器初始化代码如下:

optimiser = optim.SGD(params=model.parameters(), lr=1e-2)

验证效果

修改后重新运行代码,你会看到损失值逐步下降,模型参数也会向真实的weight=0.7、bias=0.3逼近。例如训练到200epoch时,参数会接近目标值,损失也会降到较低水平。

额外调试建议

  • 训练过程中可打印参数实时变化,确认更新是否正常:
    if epoch == 1 or epoch % 10 == 0:
        print(f"Epoch: {epoch:3} | Loss: {loss:.2f} | Test loss {test_loss:.2f}")
        print(f"Current params: {model.state_dict()}")
    
  • 检查损失值是否出现NaN或无穷大,这通常是学习率过高的典型信号。

内容的提问来源于stack exchange,提问作者Celdor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:59:58