文章目录
1. 前言
- 一直想玩一下这个猫狗大战,但是总是没有下功夫调参。周末有时间,又租借了一个云服务器,万事俱备,只欠东风,开始搞起。
2. 下载数据集
- 想要参加kaggle官网上面的这个猫狗大战比赛,首先需要注册一个kaggle账号用来下载对应的数据集。
打开下面的网站进行下载即可
3. 比赛成绩排名
- www.kaggle.com/competitions/dogs vs cats/leaderboard

- 第一名的分数是0.98914
4. baseline
5. 尝试
- 自己搜索了网上对于猫狗大战中可以涨点的策略,自己主要做了以下尝试
5.1. 数据归一化(98.994%)
添加这个归一化代码
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
完整代码
transform = transforms.Compose([
transforms.Resize((512, 512)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])
效果
- 不得不说,对数据进行归一化之后,可以极大的提高这个网络收敛的速度。第一个周期的验证准确率就可以达到98.39%

- 100个周期跑完,最好可以达到98.994%的效果

5.2. 使用AdamW优化器(98.63%)
AdamW是带有权重衰减(而不是L2正则化)的Adam,它在错误实现、训练时间都胜过Adam。
对应的数据
epoch train loss train acc val loss val acc
0 43.95111 97.75% 2.93358 98.51%
1 430.50297 64.70% 36.61037 77.67%
2 137.0172 91.71% 5.94341 96.82%
3 40.69821 97.84% 3.16171 98.71%
4 28.72242 98.44% 5.38266 97.71%
5 21.23378 98.85% 5.59306 97.02%
6 18.11441 99.04% 3.98322 98.03%
7 19.32834 99.00% 5.01681 98.07%
8 11.94442 99.44% 4.81

本文介绍了作者在Kaggle的猫狗大战比赛中使用ResNet18作为基础模型,通过数据归一化提升模型性能至98.994%,再结合AdamW优化器提高到98.63%。尝试添加SegNet模块后,验证集准确率下降到95.05%。文章提供了相关代码和训练过程中的损失与准确率变化。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



