首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >全球AI挑战-场景分类的比赛源码(多模型融合)

全球AI挑战-场景分类的比赛源码(多模型融合)

作者头像
机器学习AI算法工程
发布于 2019-10-28 16:00:11
发布于 2019-10-28 16:00:11
1.2K0
举报
全球AI挑战赛中场景分类的比赛源码,比赛已经告一段落,这里对总结一下比赛期间遇到的问题,踩的坑等做个总结。

源码快速接入

数据集,代码获取方式:

关注微信公众号 datayx 然后回复 AI 即可获取。

配置数据集路径

打开config.py,找到下面的位置,根据自己的电脑系统在对应的位置配置上数据集路径

  • 分类数据 运行split_by_class.py 脚本,分别对train数据集合val数据集进行按照子文件夹分类
  • 开始训练 找任一个classifier 开头的(classifier_base 除外)脚本进行运行,这里包含VGG16/19、Xception、Inception-V3、Inception-Resnet-V2等经典模型

要点概述

  • 支持多个单模型进行集成,可选多种集成方式
  • 支持多种集成方式间的任意组合和自动择优
  • 支持间断训练时权重文件的择优选择
  • 支持VGG16、VGG19、Resnet50、Inception-V3、Xception、Inception-Resnet-V3模型
  • imgaug 图片数据增强库替换Keras自带的图片预处理
  • 支持多进程进行图片预处理

血训

数据增强很重要!!!

Keras自带的图片增强远远不够的,这里选择了imgaug这个图片数据增强库,

https://github.com/aleju/imgaug

直接上图,这种效果是目前的Keras望尘莫及的,尽可能最大限度利用当前有限的数据集。提高1~3个百分点

尽可能高效使用CPU!!!

训练任务交给GPU去做,新添加的imgaug图片处理方式之后,一个Epoch在1050Ti上耗时90mins+,排查发现大部分时间都在进行图片数据增强处理,于是将该部分的处理替换为多进程方式。时间从90mins降到30mins左右

标准化很重要!!!

先计算出整体训练集的mean和std,然后在训练阶段的输入数据以mean和std进行高斯化处理(参mean_var_fetcher.py)提高0.5~1.0个百分点

Fine-tune别绑太紧!!!

这点尤为重要!Fine-tune时松太开,可能导致训练耗时,也可能导致机器带不动;绑太紧可能导致Fixed的权重参数扼制了模型的学习能力。建议是在机器能扛得住的基础下,尽可能松绑多一些。提高2~5个百分点

模型选择很重要!!!

糟糕的模型训练几天几夜,可能赶不上优势模型训练几个epoch。VGG16=>Xception提高5~8个百分点

Loss降不下去时尝试调低LR!!!

降不下去就调小,调下的幅度一般是5倍、10倍左右。提高1~3个百分点

TensorbBoard监视训练状态!!!

尽可能使用Tensorflow提供的Tensorboard可视化工具,方便从宏观把控训练过程。

适度过拟合是良性的!!!

训练过程中一直没有过拟合,要从两方面考虑:

  • 模型太简单,拟合能力不足,这时要考虑增强网络复杂度
  • 数据增强程度太大,学不到某些特征

模型集成!!!

单模型没有什么提升空间时,要尝试将多个单模型进行集成。集成的方式可以选择投票法、均值法、按照模型Acc加权法等等。提高0.5~1.5个百分点

预测数据增强!!!

为了确保预测结果的准确性,可以将待预测结果进行水平翻转(或随机裁取patch等)处理,将这多张孪生图片进行预测,最终结果取多个结果的均值。提高0.25~1.0个百分点

找个小伙伴一起搞!!!

挑战官网

https://challenger.ai/news/ai_challenger

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 源码快速接入
  • 要点概述
  • 血训
    • 数据增强很重要!!!
    • 尽可能高效使用CPU!!!
    • 标准化很重要!!!
    • Fine-tune别绑太紧!!!
    • 模型选择很重要!!!
    • Loss降不下去时尝试调低LR!!!
    • TensorbBoard监视训练状态!!!
    • 适度过拟合是良性的!!!
    • 模型集成!!!
    • 预测数据增强!!!
    • 找个小伙伴一起搞!!!
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档