pytorch学习之过拟合及优化trick

数据分布

  • 我们一般会有train(训练集),val(验证集),test(测试集)。
  • 再训练时使用训练集和验证集,验证集用于选择模型参数,保证模型不会过拟合
  • 测试集用于测试训练后的训练结果

交叉验证

  • pytorch中之支持把数据集划分为train和test两种(通过参数train=true、false),因此需要val 验证集时,一般通过random_split()函数分割
    pytorch学习之过拟合及优化trick
    pytorch学习之过拟合及优化trick

正则化

  • 正则化用于避免过拟合
  • 有L1正则化(损失函数上加一个一范数)
    pytorch学习之过拟合及优化trick
  • L2正则化(损失函数上加一个二范数)
    pytorch学习之过拟合及优化trick
  • 在pytorch中,对于L2正则化,可以直接设置参数weight_decay 的值,作为λ 的值
    pytorch学习之过拟合及优化trick
  • 对于L1正则化,则需使用下例的方法,直接写出
    pytorch学习之过拟合及优化trick

动量(惯性),学习率衰减

  • 一般需要加动量只需要像下例这样,增加一个momentum参数即可,但是Adam优化器没有这个参数,因为其内置了类似该参数的算法。
    pytorch学习之过拟合及优化trick
  • 可以使用ReduceLROnPlateau()函数,监听loss,当运行‘min’个epoch,loss都没减少,就会自动减少learningrate值
  • pytorch学习之过拟合及优化trick
  • 也可以stepLR()函数,固定几个epoch减少固定的 lerarningrate 值
    pytorch学习之过拟合及优化trick

dropout

  • 去除一些点特征点
  • 在pytorch中实现非常简单
    pytorch学习之过拟合及优化trick
  • 但要注意,在pytorch中Dropout的参数是保留(1-p)的概率,而tensorflow中的参数是保留的概率
    pytorch学习之过拟合及优化trick
  • 另外在test时,要用eval把dropout去掉,提高test结果pytorch学习之过拟合及优化trick

版权声明:本文为博主ljc_coder原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/m0_52785249/article/details/123015105

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年2月20日 下午1:51
下一篇 2022年2月20日 下午2:38

相关推荐