【发布时间】:2021-03-17 01:22:39
【问题描述】:
我正在尝试训练深度学习架构,模型训练完美。我在每个时代之后进行测试。对于 7 epoch,所有损失和准确性似乎都还可以,但在测试期间的 8 epoch 测试损失变为 nan。我检查了我的数据,它没有nan。我的测试精度也高于火车,这很奇怪。训练数据大小为 37646,测试为 18932,所以应该足够了。在成为 nan 测试之前,在 1.6513713663602217e+30 附近开始变得非常高。这真的很奇怪,我不明白为什么会发生。非常感谢任何帮助或建议。
【问题讨论】:
-
你的网络发散,降低学习率...
-
不工作将学习率从 0.05 降低到 0.001,但仍然在测试损失中获得 nan,因为在测试我的架构的一个模块时,经过一些迭代后,在 epoch 3 给出了 nan 分数。单独的模块工作正常,但是当我将一个模块合并到另一个模块中以添加他们的分数时,这件事正在发生
-
你是如何计算损失的?如果每次循环遍历batch中的数据时都添加loss,很可能会导致nan,相反,您需要在每次通过网络转发batch时添加它来计算loss。
-
作为测试阶段,我不会在每个批次中添加损失,而是将它们附加到单独的变量中,以获得批次迭代结束后的最终平均损失。
-
@SaniaZahan,你能把你的代码添加到你的问题中吗?
标签: deep-learning pytorch