2023.05.14-微调ResNet参加kaggle上猫狗大战比赛打到99%的分类准确率_convert

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

1. 前言

  • 一直想玩一下这个猫狗大战,但是总是没有下功夫调参。周末有时间,又租借了一个云服务器,万事俱备,只欠东风,开始搞起。

2. 下载数据集

  • 想要参加kaggle官网上面的这个猫狗大战比赛,首先需要注册一个kaggle账号用来下载对应的数据集。

打开下面的网站进行下载即可

3. 比赛成绩排名

4. baseline

  • 自己最开始的时候使用的是ResNet 18的代码作为baseline,分类准确度可以轻轻松松达到98%

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值