【问题标题】:Loss is increasing from first epoch itself损失从第一个时代本身开始增加
【发布时间】:2018-07-09 17:10:29
【问题描述】:

我正在为 nlp 训练我的连体网络。我在其中使用了lstm。和 BCE 损失。我的损失从第一个纪元开始增加。前 36 个 epoch 损失是 0之后的错误是 272.4357 [torch.FloatTensor 大小为 1]

1 之后的错误是 271.8972 [torch.FloatTensor 大小为 1]

2 之后的错误是 271.5598 [torch.FloatTensor 大小为 1]

3 之后的错误是 271.6979 [torch.FloatTensor 大小为 1]

4 之后的错误是 271.7315 [torch.FloatTensor 大小为 1]

5 之后的错误是 272.3965 [torch.FloatTensor 大小为 1]

6 之后的错误是 273.3982 [torch.FloatTensor 大小为 1]

7 之后的错误是 275.1197 [torch.FloatTensor 大小为 1]

8 之后的错误是 275.8228 [torch.FloatTensor 大小为 1]

9 之后的错误是 278.3311 [torch.FloatTensor 大小为 1]

10 之后的错误是 277.1054 [torch.FloatTensor 大小为 1]

11 之后的错误是 277.8418 [torch.FloatTensor 大小为 1]

12 之后的错误是 279.0189 [torch.FloatTensor 大小为 1]

13 之后的错误是 278.4090 [torch.FloatTensor 大小为 1]

14 之后的错误是 281.8813 [torch.FloatTensor 大小为 1]

15 之后的错误是 283.4077 [torch.FloatTensor 大小为 1]

16 之后的错误是 286.3093 [torch.FloatTensor 大小为 1]

17 之后的错误是 287.6292 [torch.FloatTensor 大小为 1]

18 之后的错误是 297.2318 [torch.FloatTensor 大小为 1]

19 之后的错误是 307.4176 [torch.FloatTensor 大小为 1]

20 之后的错误是 304.6649 [torch.FloatTensor 大小为 1]

21 之后的错误是 328.9772 [torch.FloatTensor 大小为 1]

22 之后的错误是 300.0669 [torch.FloatTensor 大小为 1]

23 之后的错误是 292.3902 [torch.FloatTensor 大小为 1]

24 之后的错误是 300.8633 [torch.FloatTensor 大小为 1]

25 之后的错误是 305.1822 [torch.FloatTensor 大小为 1]

26 之后的错误是 333.9984 [torch.FloatTensor 大小为 1]

27 之后的错误是 346.2062 [torch.FloatTensor 大小为 1]

28 之后的错误是 354.6148 [torch.FloatTensor 大小为 1]

29 之后的错误是 341.3568 [torch.FloatTensor 大小为 1]

30 之后的错误是 369.7580 [torch.FloatTensor 大小为 1]

31 之后的错误是 366.1615 [torch.FloatTensor 大小为 1]

32 之后的错误是 368.2455 [torch.FloatTensor 大小为 1]

33 之后的错误是 391.4102 [torch.FloatTensor 大小为 1]

34 之后的错误是 394.3190 [torch.FloatTensor 大小为 1]

35 之后的错误是 401.0990 [torch.FloatTensor 大小为 1]

36 之后的错误是 422.3723 [torch.FloatTensor 大小为 1]

【问题讨论】:

  • 请补充更多细节,你的学习率可能太高了。

标签: python optimization neural-network deep-learning pytorch


【解决方案1】:

可能你的学习率太高了。尝试降低你的学习率。太大的学习率是损失从第一个 epoch 开始增加的最常见原因。

你的损失也很高。有如此高的损失是不寻常的。您的损失函数中可能有一个总和,用平均值替换该总和可能更明智。虽然如果你使用 Adam 优化器这没有什么区别,但如果你使用简单的 SGD 有或没有使用总和而不是平均值的动量,这意味着你需要以不同的方式调整你的学习率,如果维度(或序列的长度)由您的 lstm 处理)您的系统更改。

【讨论】:

  • 感谢您的回复。将减少lr并尝试。我正在使用 sie_average=True 但这种损失是所有批次损失的总和。我必须除以批次数。
猜你喜欢
  • 2021-05-04
  • 2016-03-04
  • 2018-06-25
  • 1970-01-01
  • 2021-04-13
  • 2018-12-15
  • 2018-01-27
  • 1970-01-01
  • 2022-01-24
相关资源
最近更新 更多