pytorch学习之过拟合及优化trick

数据分配

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

交叉验证

  • pytorch中之支持把数据集划分为 train和test 两种(通过参数train=true、false),因此需要 val 验证集 时,一般通过 random_split() 函数分割
    在这里插入图片描述
    在这里插入图片描述

正则化

  • 正则化用于避免过拟合
  • 有L1正则化(损失函数上加一个一范数)
    在这里插入图片描述
  • L2正则化(损失函数上加一个二范数)
    在这里插入图片描述
  • 在pytorch中,对于L2正则化,可以直接设置参数 weight_decay 的值,作为 λ 的值
    在这里插入图片描述
  • 对于L1正则化,则需使用下例的方法,直接写出
    在这里插入图片描述

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

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

dropout

  • 去掉一些点特征点
  • 在pytorch中实现非常简单
    在这里插入图片描述
  • 但要注意,在pytorchDropout的参数是保留 (1-p)的概率,而tensorflow中的参数是保留的概率
    在这里插入图片描述
  • 另外在test时,要用 evaldropout去掉,提高test结果在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值