【深度学习基础知识 - 32】模型涨点的技巧

大家都希望模型精度越高越好,除了尝试各种不同的模型之外,还可以通过一些训练策略来实现模型的涨点,这里分享一些博主常用的方法。

1. warm up

  • warm up就是说一开始采用较低的学习率,等训练一段时间之后再采用较高的学习率并且随着学习率衰减策略衰减。能够有效的防止模型在较大学习率的时候由于步长过大很快陷入一个局部最小值区域的问题。

2. 合适的学习率衰减策略

  • 学习率衰减策略比较常见,但很多时候大家都是用优化器自带的学习率衰减策略,该策略不一定适合自己的任务。可以自己将学习率、迭代次数、loss、精度曲线画出来,是否在某些学习率下精度仍然有上升趋势,但该趋势还没结束学习率已经进行了衰减,如果有的话那么可以继续增加该段的迭代次数,进而获得更高的模型精度。

3. finetuning

  • 模型训练结束之后,可以freeze部分layer进行最终的微调,也使得最终模型获得一定程度的涨点。

4. 单GPU训练

  • 多卡训练时候由于数据同步问题,比如sync BN就会多多少少带来性能损伤,因此可以尝试单卡训练策略。

5. 增加数据集

  • 使用更多更大的数据集也有助于模型涨点 。

6. 平衡每个batch的数据比例

  • 如果随机读取数据,那么每个batch并不一定能保证每个类别的数据都包含,因此需要做每个batch的数据均衡。

7. 采用在公开数据集上训练好的模型作为初始化

  • tensorflow、pytorch、paddle等框架都提供了在imagenet等大数据集上训练好的模型,这些模型作为特征提取的backbone通常有更好的模型表征能力,因此采用它们作为初始化效果通常会很好。

博主会持续更新一些深度学习相关的基础知识以及工作中遇到的问题和感悟,喜欢请关注、点赞、收藏。

你可能感兴趣的:(深度学习,深度学习,机器学习,人工智能)