gpt4 book ai didi

deep-learning - Pytorch:经过一些迭代后测试损失变为 nan

转载 作者:行者123 更新时间:2023-12-05 04:51:58 28 4
gpt4 key购买 nike

我正在尝试训练深度学习架构,模型训练完美。我在每个纪元之后进行测试。对于第 7 个时期,所有损失和准确性似乎都还不错,但在测试期间的第 8 个时期,测试损失变成了 nan。我检查了我的数据,它没有南。我的测试准确率也高于火车,这很奇怪。训练数据大小为 37646,测试数据为 18932,所以应该足够了。在成为 nan 之前,测试开始变得非常高,在 1.6513713663602217e+30 附近。这真的很奇怪,我不明白为什么会这样。非常感谢任何帮助或建议。

最佳答案

假设非常高的学习率不是问题的原因,您可以在更新之前使用 PyTorch 的梯度裁剪裁剪梯度。

例子:

optimizer.zero_grad()        
loss, hidden = model(data, hidden, targets)
loss.backward()

torch.nn.utils.clip_grad_norm_(model.parameters(), clip_value)
optimizer.step()

这是当你有 NaN 损失时要做的第一件事,当然如果你已经确定你在其他地方没有 NaN,例如在您的输入功能中。在增加学习率导致 NaN 的情况下,我使用了梯度裁剪,但仍想测试更高的学习率。降低学习率也可以解决您的问题,但我猜您已经尝试过了。

根据经验,我大部分时间都设置 clip_value = 5,然后查看它(通常不显着)对性能的影响。随意尝试不同的值。

关于deep-learning - Pytorch:经过一些迭代后测试损失变为 nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66648432/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com