第一次Kaggle比赛心得

新手避雷

  1. 在未组队的情况下私下共享资料属于违规行为,组队截止时间过后尤其不能这样
  2. 提交notebook的时候,kaggle的服务器只能找到前两个输出文件,所以一定要把你要提交的文件放在前两个(我们就是犯了这个错误,痛失银牌😢 😢
  3. 防shake,Kaggle的test dataset被分为public dataset和private dataset,submit后只显示在public dataset上的分数,最终排名会用在整个test dataset上的成绩来算,一般来说,ensemble效果差不多而原理不同的模型,既可以提升公榜分数,又能防shake,但是加权的weight不要调的过于仔细,否则很可能会过拟合public dataset

G2Net Detecting Continuous Gravitational Waves

这场比赛的重点在生成训练数据和噪声处理,模型大家基本都是调用TIMM库,使用efficientNet和Inception,模型和训练方面用到的trick用不多

比赛的收获

  • 熟悉kaggle的使用
  • 了解比赛规则
  • 找到了几个优雅的深度学习的代码模板
    like this

分类模型

Model

Model = encoder+classifier 输出为属于某类的概率,0~1

self.classifier = nn.Sequential( nn.Linear(n_features, n_class, bias=True), nn.Sigmoid() ## nn.Softmax() 多分类 )

critrion BCE

nn.BCELoss()
nn.BCEWithLogitsLoss() 自带Sigmoid
这两个函数在计算时都有对p增或减一个较小值防止p=0或1时出现无穷大

Tricks

large kernel

31×31的大卷积核

Augmentation

flip 翻转
shift 平移
masking 遮住图像的一部分

transforms_time_mask = nn.Sequential(torchaudio.transforms.TimeMasking(time_mask_param=10)) transforms_freq_mask = nn.Sequential(torchaudio.transforms.FrequencyMasking(freq_mask_param=10)) # horizontal flip img = np.flip(img, axis=1).copy() # vertical flip img = np.flip(img, axis=2).copy() # vertical shift img = np.roll(img, np.random.randint(low=0, high=img.shape[1]), axis=1) # tima masking img = transforms_time_mask(img) # frequency masking img = transforms_freq_mask(img)

了解更多Augmentation方法可见博客论文

好用的库

  1. TIMM 计算机视觉模型库
  2. optuna 参数调优库
  3. wandb 在线可视化库

__EOF__

本文作者榴莲千层ya
本文链接https://www.cnblogs.com/QiancengYaya/p/2023-01-03-kaggle_first.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   榴莲千层ya  阅读(132)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示