Python 损失从第一个时代开始就在增加

Python 损失从第一个时代开始就在增加,python,optimization,neural-network,deep-learning,pytorch,Python,Optimization,Neural Network,Deep Learning,Pytorch,我正在为nlp培训我的暹罗网络。我在其中使用了lstm。B和B。我的损失从第一个时代开始就在增加。前36个历元的损失是 0之后的错误为 272.4357 [火炬.大小为1的漂浮张量] 1之后的错误为 271.8972 [火炬.大小为1的漂浮张量] 2之后的错误是 271.5598 [火炬.大小为1的漂浮张量] 3之后的错误是 271.6979 [火炬.大小为1的漂浮张量] 4之后的错误是 271.7315 [火炬.大小为1的漂浮张量] 5之后的错误是 272.3965 [火炬.大小为1的漂浮张量

我正在为nlp培训我的暹罗网络。我在其中使用了lstm。B和B。我的损失从第一个时代开始就在增加。前36个历元的损失是 0之后的错误为 272.4357 [火炬.大小为1的漂浮张量]

1之后的错误为 271.8972 [火炬.大小为1的漂浮张量]

2之后的错误是 271.5598 [火炬.大小为1的漂浮张量]

3之后的错误是 271.6979 [火炬.大小为1的漂浮张量]

4之后的错误是 271.7315 [火炬.大小为1的漂浮张量]

5之后的错误是 272.3965 [火炬.大小为1的漂浮张量]

6之后的错误是 273.3982 [火炬.大小为1的漂浮张量]

7之后的错误是 275.1197 [火炬.大小为1的漂浮张量]

8之后的错误是 275.8228 [火炬.大小为1的漂浮张量]

9之后的错误是 278.3311 [火炬.大小为1的漂浮张量]

10后的错误是 277.1054 [火炬.大小为1的漂浮张量]

11之后的错误是 277.8418 [火炬.大小为1的漂浮张量]

12之后的错误是 279.0189 [火炬.大小为1的漂浮张量]

13之后的错误是 278.4090 [火炬.大小为1的漂浮张量]

14之后的错误为 281.8813 [火炬.大小为1的漂浮张量]

15后的错误为 283.4077 [火炬.大小为1的漂浮张量]

16之后的错误是 286.3093 [火炬.大小为1的漂浮张量]

17之后的错误是 287.6292 [火炬.大小为1的漂浮张量]

18后的错误为 297.2318 [火炬.大小为1的漂浮张量]

19之后的错误是 307.4176 [火炬.大小为1的漂浮张量]

20后的错误是 304.6649 [火炬.大小为1的漂浮张量]

21之后的错误是 328.9772 [火炬.大小为1的漂浮张量]

22之后的错误是 300.0669 [火炬.大小为1的漂浮张量]

23之后的错误为 292.3902 [火炬.大小为1的漂浮张量]

24之后的错误是 300.8633 [火炬.大小为1的漂浮张量]

25后的错误为 305.1822 [火炬.大小为1的漂浮张量]

26之后的错误是 333.9984 [火炬.大小为1的漂浮张量]

27之后的错误是 346.2062 [火炬.大小为1的漂浮张量]

28之后的错误是 354.6148 [火炬.大小为1的漂浮张量]

29之后的错误是 341.3568 [火炬.大小为1的漂浮张量]

30后的错误是 369.7580 [火炬.大小为1的漂浮张量]

31之后的错误为 366.1615 [火炬.大小为1的漂浮张量]

32之后的错误为 368.2455 [火炬.大小为1的漂浮张量]

33之后的错误是 391.4102 [火炬.大小为1的漂浮张量]

34之后的错误是 394.3190 [火炬.大小为1的漂浮张量]

35后的错误为 401.0990 [火炬.大小为1的漂浮张量]

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

可能您的学习率太高了。试着降低你的学习速度。学习率太高是导致损失从第一个时代开始增加的最常见原因


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

请添加更多详细信息,你的学习率可能太高了。谢谢你的回复。将降低lr并重试。我使用sie_average=True,但该损失是所有批次损失的总和。我必须除以批次数。