553. BirdCLEF 2023 | birdclef-2023
大家好!
首先,感谢康奈尔鸟类学实验室和Kaggle团队主办这场比赛。同时,也祝贺所有获奖者和参与者。
我在比赛结束前约2周加入,由于日常工作繁忙,只有大约7天时间参与。这对我来说是一个很好的机会,挑战在短时间内构建模型。因此,我必须专注于在最少的尝试中找到最有效的方案。
幸运的是,有很多高质量的资源,比如以往比赛 top 解决方案。我开始跟进这些方案,并总结出通用的有效方法。(过去参加BirdCLEF 2020的经验也帮助很大)
经过一系列尝试和一些运气,我想我构建了一个不错的模型 : )
以下是训练流程。
我在每个步骤中应用了相同的训练方法(如数据增强、损失函数等)。
(虽然基于我的少量实验)我的CV分数与LB/PB有一定的相关性。
| 实验 | CV | LB | PB | 备注 |
|---|---|---|---|---|
effnetb0 |
0.7720 | 0.82438 | 0.73641 | 多损失函数,5折 |
effnetb0 |
0.7693 | 0.82402 | 0.73604 | 片段级损失,5折 |
eca_nfnet_l0 |
0.7753 | 0.80731 | 0.71845 | 片段级损失,单折 |
我使用了带有efficientnet_b0骨干网络的SED架构。我也测试了eca_nfnet_l0骨干网络,它的CV分数更好,但由于延迟问题无法使用。
使用Pytorch我可以集成最多4个模型(耗时近2小时)。为了集成更多模型,我使用了ONNX并进行图优化,这使得可以再增加一个模型!最终,我成功集成了5个模型(单模型的5折)。此外,为了充分利用CPU,我还进行了多进程处理。
希望这些内容能对大家有帮助!
谢谢 : )