神经网络训练出问题时找找这些地方

85 阅读1分钟

损失不降

  1. 清空梯度了吗? optimizer.zero_grad()
  2. 梯度回传了吗? loss.backward()
  3. 更新模型了吗? optimizer.gtep()
  4. 切换模式了吗? model.train() / model.eval()
  5. 用到了masked_loss的地方,mask的0/1处理方式反了吗?还是1-mask才对?

可视化不对

  1. 数据可视化逻辑一致吗?
  2. 数据范围一致吗?有没有padding进来额外的0之类的?推荐按固定的区间对pred和gt同时进行可视化。

预测值中出现NaN

  1. 模型输出有没有被限定到合理范围?
  2. 模型权重的初始化方式优化一下?(实测经常有效果)
  3. 尝试减小学习率?或者更改调度策略,尽量不要太长时间维持在较高学习率?

测试集性能太差?

  1. 多来一些数据增强?