记录训练的几个tricks(以后慢慢尝试)

需要记录的训练的tricks

训练的过程中有很多的常用,并且很好用的tricks,这些tricks需要反复试验,并且验证,这里记录一下。

Progressive Resizing

在训练CNN模型的时候,从小的图片尺寸开始,逐渐调整到大的图片尺寸,例如:刚开始使用64x64来训练网络,然后使用该权重接着在128x128的图片上训练,也可以调整图片大小接着训练。每个较大规模的模型在其架构中都包含了以前较小规模的模型层和权重,从而导致对最终模型的微调以及提高准确性分数。
这个和yolo的random=1可以一起思考,random=1就是输入的图片大小在一个范围内随机选择。
改变图片的尺寸对于人眼来说,变化不大,但是对于CNN网络,是不同的训练集。

周期性学习率

从较小的学习率开始学习,缓慢提高至较高的学习率,然后再慢慢下降,周而复始,每个周期的长度略微缩短,在训练的最后部分,允许学习率比之前的最小值降得更低。这不仅可以加速训练,还有助于防止模型落入损失平面的陡峭区域,使模型更倾向于寻找更平坦的极小值,从而缓解过拟合现象。
在这里插入图片描述

图像增强

图像增强,毋庸置疑,非常重要,除了常用的随机翻转、随机对比度、随机亮度,随机旋转等等,还需要进一步理解cutmix、mixup、cutout、mosaic等。

Sequential Unfreezing while Transfer Learning

I learned this trick during the fastai course. When we are performing transfer learning, our model has already captured a lot of information.
The initial layers (Layers close to inputs) retain more info about the structure of objects, etc and the latter layers (close to output) learn more about the dataset. We can envision our model to be grouped in layers like so:
Input(Group) -> HiddenSetEarly -> HiddenSetLater -> Output(Group)
When performing transfer learning, its usually a good idea to just train the last few layers and then unfreeze the earlier layers sequentially

Gem-pooling

f ( g ) = [ f 1 ( g ) . . . f k ( g ) . . . f K ( g ) ] T = ( 1 ∣ X k ∣ ∑ x x p k ) 1 p k f^{(g)} = [f_1^{(g)}...f_k^{(g)}...f_K^{(g)}]^T = (\frac{1}{|X_k|}\sum_xx^p{_k})^\frac{1}{p_k} f(g)=[f1(g)...fk(g)...fK(g)]T=(Xk1xxpk)pk1

local features

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值