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

Keras训练神经网络时损失值与学习率成正比问题咨询

你的理解是正确的,正常训练场景下只有损失的下降幅度和学习率正相关,损失值本身不会和学习率成正比,你遇到的现象和Keras的损失函数计算逻辑无关,核心原因是遗漏了MNIST输入数据的归一化预处理。

  • 你当前使用的MNIST原始像素值范围是0255,没有经过缩放到01区间的预处理,大尺度的输入特征会导致Dense层输出的logits数值整体偏高,经过sigmoid激活后大部分值落入饱和区间,此时计算的分类交叉熵损失本身就会处于非常高的量级。
  • 学习率决定了每次迭代权重的更新步长,在输入特征尺度未对齐的情况下,更大的学习率会让权重更新幅度更大,直接导致输出logits的波动幅度同步变大,最终表现为损失值整体量级和学习率正相关。
  • 你可以做简单验证:在训练前添加两行代码对输入做归一化:
x_train = x_train.astype("float32") / 255.0
x_test = x_test.astype("float32") / 255.0

重新训练后你会发现损失数值会降到个位数区间,也不会再出现学习率扩大3倍、损失整体也扩大3倍的现象。

  • 更换优化器仍然复现问题也验证了这一点:优化器仅调整权重更新的策略,只要输入特征尺度未归一化的问题存在,大学习率带来的大更新步长都会导致损失量级同步上升。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:54:03