第一次参加kaggle竞赛:Happywhale - Whale and Dolphin Identification(ID识别问题:top9.4% 150/1558)

在这里插入图片描述

一、ID识别问题

ID1:
在这里插入图片描述
ID2:
在这里插入图片描述
下图是哪个ID:
在这里插入图片描述

二、训练数据分布

  • 51033张训练图片, 27956张测试图片,public LB用了24%的测试图片,最后结果以private LB的结果为准
  • Whale和Dolphin两个类别的数据分布
    在这里插入图片描述
  • Whale和Dolphin下面总共26中类别
    在这里插入图片描述
  • 5w多张图片总共含有15587个ID,前10个ID的分布如下:
    在这里插入图片描述
  • 训练图片中有很多ID只有一张图片
  • 测试图片中,有些ID 没有在训练图片中出现

三、我的解决方案

在这里插入图片描述
训练的时候,采用effiecientnetb7作为特征提取器,使用gem pooling,加入CBAM attention,四个neck,四个loss;测试的时候,将四个neck的特征cat到一起,就是提取的embeddings。

四、我的用到的tricks

  • 学习率:warmup+cos下降
  • 冻结bn层:小的batch_size下不能正确估计统计变量E(x)和V(x),还不如不更新。详细看这里
  • 混合精度训练:GPU下的某些操作,将float32转换为float16,损失少量的精度,可以节省大量的内存。详细看这里
  • 梯度累加:梯度累加几个batch_size之后再更新,loss求平均时防止梯度爆炸。详细看这里
  • CBAM attention:通道和空间域的attention。
  • test_tta:Test Time Augmentation
  • 不同input size之间的ensemble:确定input size 时,CNN 学会了找到特定大小的特定特征;那么,修改input size后再训练,学习后的CNN找到的其他大小下的其他特征,因此可以用不同的input size,看哪种更接近最优值。

五、tricks的效果

下面的表格是我在effiecientnetb5上的训练结果,因为effiecientnetb5更新快,score是在public LB上的分数:
在这里插入图片描述

六、有用未成功的tricks

  • Progressive Resizing
    step1:Train model on size: small
    step2:Save weights and re-train model on larger image size
    step3:Save weights again and re-train on final image sizes

  • Differential Learning Rates
    上层特征,用小的学习率,低层特征,用较大学习率

  • PsuedoLabelling
    训练—测试—加入训练集—再训练—再测试

下面内容是我重点参考的,觉得非常有用的

不用翻墙的kaggle 讨论:
1、9 Computer Vision Tricks to Improve Performance
2、7 More Computer Vision Tricks to Improve Score
3、Previous Happywhale Competition Solutions
4、CNN Input Size Explained

下面链接需要翻墙:
这个blog有四个大trick:
trick1: freeze
Novel techniques to win an Image Classification hackathon (Part-1)
trick2: progressive trainning
Novel techniques to win an Image Classification hackathon (Part-2)
trick3: attentation
Novel techniques to win an Image Classification hackathon (Part-3)
trick4:Ensemble and TTA
Novel techniques to win an Image Classification hackathon (Part-4)

这个第7名的方案是我主要参考的方案:
Thanks Radek 7th place solution to HWI 2019 competition

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值