Datawhale 深入浅出Pytorch【第六章:PyTorch模型定义与进阶训练技巧】


需要将上一章结合,U-Net模型后加深进阶训练技巧。


一、自定义损失函数?

损失函数仅仅是一个函数而已,当我们不想使用CrossEntropyLoss(),我们可以通过直接以函数定义的方式定义一个自己的函数。本次课程采用的是DiceLoss, 是一种分割模型。
在这里插入图片描述
Kaggle上有很多关于Loss functions:
【1】https://www.kaggle.com/bigironsphere/loss-function-library-keras-pytorch/notebook

二、动态调整学习率

随着优化的进行,固定的学习率可能无法满足优化的需求,这时需要调整学习率,降低优化的速度,以此提高模型精度。
本次使用的是StepLR的方法。通过运行示例代码,可以看出learning rate每次 都不一样。公式中step_size和gamma可以自定义来调整,想要平滑就把step_size调小,把gamma调大,十分灵活。
在这里插入图片描述

三、模型微调

运用多的场景为图像处理。
unet.module.outc.conv.weight.requires_grad=False, 让最后一层不需要参数更新。
模型微调是个大工程,通常你有别人留下的权重,或者在官网中torchvision上下载来的权重。

四、半精度训练

减少浮点数:Pytorch默认的是torch.float 32,因此改为torch.float16格式,搭配@autocast修饰器函数,来进行半精度训练。

五、数据增强-imgaug

当数据不足时,会容易导致模型过拟合,为了避免这种情况而使用数据增强,提高训练数据集的大小和质量。

总结

本次章节,还是以搞懂代码里的含义为主。后续需要多看一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值