损失从第一个时代本身开始增加

Loss is increasing from first epoch itself

我正在为 nlp 训练我的孪生网络。我在其中使用了 lstm 。和BC损失。我的损失从第一个时代开始增加。前 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]

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

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