作者:  尘沙风尘

Kaggle图像赛上分技巧之TTA: Test Time Aug

  • 1  TTA(Test Time Aug)

    • 1.1  简介

    • 1.2  案例(keras)

      • 1.2.1  导入适合当前问题的预测器(ClassPredictor用于分类,SegPredictor用于分割)

      • 1.2.2  用配置和所需的任何参数实例化类

      • 1.2.3  对图片进行预测

      • 1.2.4  实验结果

    • 1.3  小结

  • 2  参考文献

简介

我们都知道对我们的训练数据进行翻转,平移,缩放等扩充的操作往往可以获得一个训练更好的网络模型,这些扩充操作往往可以帮助我们的模型更好的挖掘到那些对于位置,光照等信息不敏感的信息,从而具有更好的泛化性,得到更好的预测结果。那既然训练集的数据可以扩充,测试集呢?

Bingo!没错,测试集也是可以采取类似的操作。而这种操作我们称之为TTA(Test Time Augmentation),顾名思义就是在测试的阶段对数据进行扩充。

TTA是一个非常通用的Trick,目前几乎绝大多数图像相关的竞赛都会使用到,而且基本是99%都能带来线上排行榜的提升。那么究竟是怎么做的呢?其实很简单:

就是在模型测试时,对原始的测试图像进行各种策略的扩充,例如:

  • 图像裁剪;

  • 图像缩放;

  • 图像旋转;

  • 图像平移;

  • ...

然后我们将预测的结果进行某种程度的融合,最常见的就是取平均值,然后将该分数作为最终的预测分数。

TTA操作较早出现在2015年ICLR的论文"Very Deep Convolutional Networks for Large-Scale Image Recognition"

We also augment the test set by horizontal flipping of the images; the soft-max class posteriors of the original and flipped images are averaged to obtain the final scores for the image.

案例(基于Keras)

以kaggle Dogs VS Cats为例, edafa (TTA package)

1. 导入适合当前问题的预测器(ClassPredictor用于分类,SegPredictor用于分割)

from edafa import ClassPredictor

2.继承预测器类并实现主函数:predict_patches(self,patches)

class myPredictor(ClassPredictor):def __init__(self,model,*args,**kwargs):super().__init__(*args,**kwargs)self.model = modeldef predict_patches(self,patches):return self.model.predict(patches)

3. 用配置和所需的任何参数实例化类

conf = '{"augs":["NO",\"FLIP_LR"],\"mean":"ARITH"}'

4. 对图片进行预测

p = myPredictor(model,conf)
y_pred_aug = p.predict_images(X_val)
y_pred_aug = [(y[0]>=0.5).astype(np.uint8) for y in y_pred_aug ]
print('Accuracy with TTA:',np.mean((y_val==y_pred_aug)))

5. 实验结果

  • 使用TTA:Accuracy with TTA: 0.7892

  • 不适用TTA:Accuracy without TTA: 0.7852571428571429

小结

TTA技术目前是各大图像相关的数据竞赛的必备技能之一,它能为最终的成绩带来非常大的帮助,也是目前图像赛的必备技能之一,赶紧收藏吧!

参考文献

  1. Kaggle小技巧:TTA(test time augmentation)测试时加强:https://www.shangmayuan.com/a/0e4942dc496047bb95c5806c.html

  2. https://github.com/qubvel/ttach

  3. https://www.kaggle.com/andrewkh/test-time-augmentation-tta-worth-it

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
本站知识星球“黄博的机器学习圈子”(92416895)
本站qq群704220115。
加入微信群请扫码:

【数据竞赛】图像赛排行榜拉开100名差距的技巧相关推荐

  1. 考研计算机难度排名2015,全国考研难度排行榜--前100名

    首先,就考研难度来看,处于第一个层次的当属于39所985高校.当然,特别说明一下,这种划分只是相对的,比如部分行业特色高校--财经类高校,有些高校的考研难度超过了大多数985高校. 前50所高校名单 ...

  2. 【数据竞赛】Kaggle GM秘技:树模型初始化技巧

    作者:  尘沙樱落 树模型初始化技巧 大家都知道神经网络训练的提升分数的技巧之一就是: 依据验证集合的效果,来调整learning rate的大小,从而获得更好的效果; 但我们在训练树模型的时候却往往 ...

  3. 《数据竞赛白皮书·下篇》发布,开源办好一场数据竞赛的实践方法论

    两周前,我们发布了<数据竞赛白皮书·上篇·1000场竞赛的深度分析>,通过28000字的研究分析.54个高品质图表,讲透了数据竞赛行业发展,带领大家看懂了竞赛高热度背后的逻辑. 上篇发布后 ...

  4. 爬虫(一):用python爬取亚马逊所有家具种类前100名的商品信息(上)

    目标 亚马逊公司(Amazon),是美国最大的一家网络电子商务公司,位于华盛顿州的西雅图,是网络上最早开始经营电子商务的公司之一,现在已成为全球商品品种最多的网上零售商和全球第二大互联网企业. 本次目 ...

  5. 爬虫(二):用python爬取亚马逊所有家具种类前100名的商品信息(下)

    目标 亚马逊公司(Amazon),是美国最大的一家网络电子商务公司,位于华盛顿州的西雅图,是网络上最早开始经营电子商务的公司之一,现在已成为全球商品品种最多的网上零售商和全球第二大互联网企业. 本次目 ...

  6. 世界500强和中国500强企业名单(2004年度前100名)

    排名 公司名称 中文名称 总部所在地 主要业务 营业收入百万美元 1 Wal-Mart Stores 沃尔玛 美国 一般商品零售 263009.0 2 BP 英国石油 英国 炼油 232571.0 3 ...

  7. 数据竞赛专题 | 从赛题理解到竞赛入门基础

    为了帮助更多竞赛选手入门进阶比赛,通过数据竞赛提升理论实践能力和团队协作能力.DataFountain 和 Datawhale 联合邀请了数据挖掘,CV,NLP领域多位竞赛大咖,将从赛题理解.数据探索 ...

  8. 2021年安徽省大数据与人工智能应用竞赛大数据(网络赛)-高职组赛题第三部分可视化

    第三部分:可视化(30分) 这是一份用户消费行为数据,用来分析用户消费情况及品牌情况,可视化消费变化趋势. 数据中中文字符为UTF-8编码,字段分隔符为 @@ 列名 说明 montha 购买月份 us ...

  9. 国内首本数据竞赛图书《阿里云天池大赛赛题解析——机器学习篇》今日开启预售!

    天池平台已经举办了超过 200 场来自真实业务场景的竞赛,每场赛事沉淀的课题和数据集,将在天池保留和开放.天池平台已成为在校学生踏入职场前的虚拟实践基地,也成为聚集40万数据人才,孵化2000余家数据 ...

最新文章

  1. linux在多核处理器上的负载均衡原理
  2. 认识ASP.NET配置文件Web.config
  3. python装饰器作用-Python装饰器详解
  4. 【Groovy】字符串 ( 字符串注入函数 | asBoolean | execute | minus )
  5. access课程均不及格_access 第二章 查询 练习题 -
  6. python socks5 代理服务
  7. 字符串处理 —— 回文串相关 —— 添加/删除字符后是否为回文串
  8. Java教程:Java continue语句详解
  9. SAP License:BWBCS学习笔记20210304
  10. Axure使用图标字体
  11. java 学籍管理系统课程设计_Java课程设计-学籍信息管理系统
  12. boss直聘一句话介绍优势_第一批被安永淘汰的00后实习生,就因为自我介绍说了这一句话!...
  13. 摘自韩寒博客《砰然心动》
  14. getParameterValues
  15. HBase BulkLoad批量写入数据实战
  16. baidu 百度在搞什么啊?
  17. linux lsiutil raid创建,使用Lsiutil在線管理Dell(R410,R610等)內置陣列卡SAS 6i/R
  18. Firefox OS应用程序入门
  19. OpenStack 应答文件简单翻译
  20. 【新特性速递】优化Shift/Ctrl行多选逻辑,和Windows的文件资源管理器保持一致!...

热门文章

  1. 探索javascript----获得节点计算后样式
  2. asp.net三层架构应用详解【收录】
  3. beacon帧字段结构最全总结(三)——VHT字段总结
  4. RocketMQ事务消息实现分析
  5. WPF richTextBox 滚动到某项
  6. Git 初始化及仓库创建及操作
  7. 同步和异步GET,POST请求
  8. .net面试题目51-100
  9. PostgreSQL消息乱码的解决
  10. (转)网上常用免费WebServices集合