2018年11月8日木曜日

SceneClassify

 

全球AI战赛景分的比,比告一段落,对总结一下比遇到的问题的坑等做个总结WinterFu一起参加了次比,一路摸爬打到比赛结束,没少折

快速接入

         数据集,有朋友反官方接失效,我在百度云又存放一份:https://pan.baidu.com/s/1cjR-xhsCq8BD5nH7yQeiIA: xfcp

         配置数据集路径

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

# image path
if is_windows():
    PATH_TRAIN_BASE = 'G:/Dataset/SceneClassify/ai_challenger_scene_train_20170904'
    PATH_VAL_BASE = 'G:/Dataset/SceneClassify/ai_challenger_scene_validation_20170908'
    PATH_TEST_B = 'G:/Dataset/SceneClassify/ai_challenger_scene_test_b_20170922/scene_test_b_images_20170922'
elif is_mac():
    PATH_TRAIN_BASE = '/Users/zijiao/Desktop/ai_challenger_scene_train_20170904'
    PATH_VAL_BASE = '/Users/zijiao/Desktop/ai_challenger_scene_validation_20170908'
    PATH_TEST_B = ''
elif is_linux():
    # 皮皮
    PATH_TRAIN_BASE = ''
    PATH_VAL_BASE = ''
    PATH_TEST_B = ''
else:
    raise Exception('No images configured on %s' % os_name)

         数据

运行split_by_class.py 脚本,分别对train数据集合val数据集行按照子文件

         开始训练

找任一个classifier (classifier_base 除外)脚本行运行,里包VGG16/19XceptionInception-V3Inception-Resnet-V2典模型

要点概述

          支持多个模型行集成,可多种集成方式

          支持多种集成方式的任意合和自动择优

          支持训练时权重文件的择优选择

          支持VGG16VGG19Resnet50Inception-V3XceptionInception-Resnet-V3模型

          imgaug 片数据增强库Keras预处

          支持多预处

数据增很重要!!!

Keras片增强远远的,选择imgaug片数据增强库,直接上种效果是目前的Keras莫及的,尽可能最大限度利用当前有限的数据集提高1~3个百分点

尽可能高效使用CPU!!!

训练GPU去做,新添加的imgaug理方式之后,一个Epoch1050Ti上耗90mins+,排查发现大部分时间都在片数据增强处理,于是将部分的理替换为程方式时间90mins降到30mins左右

准化很重要!!!

算出整体训练集的meanstd,然后在训练阶段的入数据以meanstd行高斯化理(mean_var_fetcher.py提高0.5~1.0个百分点

Fine-tune别绑!!!

点尤重要!Fine-tune松太开,可能训练,也可能致机器可能Fixed重参数扼制了模型的学能力。建是在机器能扛得住的基下,尽可能松多一些提高2~5个百分点

模型选择很重要!!!

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

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

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

TensorbBoard监视训练!!!

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

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

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

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

模型集成!!!

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

预测数据增!!!

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

找个小伙伴一起搞!!!

想法x2时间/2能互相讨论提高0~50个百分点

https://github.com/puke3615/SceneClassify

 

0 件のコメント:

コメントを投稿