yunshao555

  • 2

    获得赞
  • 0

    发布的文章
  • 1

    答辩的项目

水下鱼类物种识别(得分99.89)

Batch大小为32,循环次数为20次,损失函数优化完,最终完成评分为99.89。

最后更新 2020/05/11 14:17 阅读 347

水下鱼类物种识别(FlyAI2.0 竞赛框架)

最后更新 2020/05/11 14:17

阅读 347

PyTorch 图像分类

1、数据预处理 

①查看图片数据,观察发现这些鱼类图片分辨率大多数都是很小的,我们可以从小分辨率开始逐步增大图像分辨率,通常可以从128开始

②自定义数据集划分,可以将训练集和验证集划分为8:2或者9:1,特别是数据量少时我们需要尽可能将训练集设置大一点

③数据增强:训练集数据增强使用AutoML的RandAugment可以防止过拟合,并且通常会比自己手工试数据增强效果好很多;验证集数据增强,训练发现直接使用Resize的方式会比先Resize再CenterCrop的效果要好,可能是CenterCrop会丢失一些信息 

2、选择baseline 

①可以考虑使用resnetxt-swsl系列或者efficientnet系列作为baseline,我这边使用的是resnetxt101-32x8swsl 

②实验可以发现efficientnet占用内存会相对大一点,efficientnet-b3占用内存和resnetxt101-32x8swsl就已经差不多大了,对于图片较大的数据集来说使用efficientnet系列效果会好点 

③使用efficientnet作为baseline学习率可以选择为0.005 ~ 0.01,使用resnetxt101-32x8swsl作为baseline学习率可以选择为0.0001 ~ 0.0005 

3、提分技巧 

①LabelSmoothingCrossEntropy:使用标签平滑损失函数可以防止过拟合,训练发现使用CrossEntropy泛化能力会相对较差,加上标签平滑泛化能力相对好一点,因子一般取0.1即可 

②ReduceLROnPlateau:训练发现使用ReduceLROnPlateau学习率调整技术可以使得loss下降更加平滑,一般将验证acc作为评判标准,patience选择3或者4 

③TTA:训练发现使用测试时间增强技术,可以稳定提分0.06 ~ 0.2分,只不过测试时间会加长很多,通常使用五切测试增强即可 

④模型融合:训练发现使用模型融合技术,可以提高测试效果,我这边用到的是resnetxt101-32x8swsl和efficientnet-v3进行融合

本文为作者在FlyAI平台发布的原创内容,采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,转载请附上原文出处链接和本声明。
本文链接地址:https://www.flyai.com/n/131409
立即参加 水下鱼类物种识别(FlyAI2.0 竞赛框架)
代码展示

PyTorch 图像分类

选择查看文件
$vue{codeKeys}
  • $vue{ix}
赞赏贡献者还可以查看和下载优质代码内容哦!
赞赏 ¥30.16元
©以上内容仅用于在FlyAI平台交流学习,禁止转载、商用;违者将依法追究法律责任。
讨论
500字
表情
每日参与讨论奖励 20FAI
发送
每日参与讨论奖励 20FAI
删除确认
是否删除该条评论?
取消 删除
感谢您的关注
该篇内容公开后我们将会给你推送公开通知
好的
发布成功!
您的公开申请已发送至后台审核,
通过后将公开展示本详情页!
知道了
向贡献者赞赏
¥30.16
微信支付
支付宝

请先绑定您的微信账号 点击立即绑定

立即支付
温馨提示:
支付成功后不支持申请退款,请理性消费;
支付成功将自动解锁当前页面代码内容,付款前请确认账号信息。
微信扫码支付
请前往Web网页进行支付

敬请谅解,如有疑问请联系FlyAI客服

知道了
举报
请选择举报理由
确定
提示
确定要删除?
取消删除