pytorch训练二分类器,训练集loss下降的很慢或者刚开始较快然后越来越慢,大佬们这是什么原因呢?

如果刚上来就loss就下降的很慢,但是总体是在下降的,这是为什么呢?


首先得看valid和test数据集一起看。

现在假设valid和test数据集上表现一致吗,并且结果表现不好。那么就是underfit的问题。我假设这里数据准确,数据量足够(其实很难满足)。那么问题就是需要用更优良的模型。当然也得注意一下你用的learning rate是多少。可以先用adam+小的learning rate尝试一下。


类比考试:作为差生的时候,随便努力一点就可以取得很大进步,差生的进步空间很大;变成学习好点的学生后,同样努力的条件下,进步没那么明显;当达到这个学生的最大潜力时,即使再努力也没有进步。训练model也是如此。


第一,你的分类器可能已经载入了预训练权重,本身表现很好了。第二,lr过大。这些都不是重点,要看你的acc等指标值表现如何


好像大家的loss都是这样下降的


一般来说都是这样的。如果用的是Adam,可能更加明显。

后面下降得慢,说明还是有很大机会收敛的。总比nan强


如果上来就下降得很慢,同时loss很低说明没问题,只不过是因为你的输出赶不上它收敛速度而已,简单来说就是,假如说你每2000个iteration输出一次,但是人家模型在第200个iteration就收敛了

刚开始快后来慢,如果慢的时候loss很低,这个不是很正常吗,但是如果很慢的时候loss依然很高有两种情况,第一是陷入局部最小值,这个需要多次初始化模型试几次,或者等待一段时间优化器自动跳出局部最小,第二是模型复杂度不够拟合,加大模型就好了


推荐阅读:
相关文章