All Projects → puke3615 → Sceneclassify

puke3615 / Sceneclassify

AI场景分类竞赛

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Sceneclassify

Faster-RCNN-TensorFlow
TensorFlow implementation of Faster RCNN for Object Detection
Stars: ✭ 13 (-92.31%)
Mutual labels:  vgg, resnet
Cnn Models
ImageNet pre-trained models with batch normalization for the Caffe framework
Stars: ✭ 355 (+110.06%)
Mutual labels:  resnet, vgg
Pytorch Image Classification
Tutorials on how to implement a few key architectures for image classification using PyTorch and TorchVision.
Stars: ✭ 272 (+60.95%)
Mutual labels:  resnet, vgg
neural-dream
PyTorch implementation of DeepDream algorithm
Stars: ✭ 110 (-34.91%)
Mutual labels:  vgg, resnet
Imagenet
Pytorch Imagenet Models Example + Transfer Learning (and fine-tuning)
Stars: ✭ 134 (-20.71%)
Mutual labels:  resnet, vgg
Keras-CIFAR10
practice on CIFAR10 with Keras
Stars: ✭ 25 (-85.21%)
Mutual labels:  vgg, resnet
Imagenet
This implements training of popular model architectures, such as AlexNet, ResNet and VGG on the ImageNet dataset(Now we supported alexnet, vgg, resnet, squeezenet, densenet)
Stars: ✭ 126 (-25.44%)
Mutual labels:  resnet, vgg
Ai papers
AI Papers
Stars: ✭ 253 (+49.7%)
Mutual labels:  resnet, vgg
Chainer Cifar10
Various CNN models for CIFAR10 with Chainer
Stars: ✭ 134 (-20.71%)
Mutual labels:  resnet, vgg
Classification models
Classification models trained on ImageNet. Keras.
Stars: ✭ 938 (+455.03%)
Mutual labels:  resnet, vgg
python cv AI ML
用python做计算机视觉,人工智能,机器学习,深度学习等
Stars: ✭ 73 (-56.8%)
Mutual labels:  vgg, resnet
Tensornets
High level network definitions with pre-trained weights in TensorFlow
Stars: ✭ 982 (+481.07%)
Mutual labels:  resnet, vgg
LibtorchTutorials
This is a code repository for pytorch c++ (or libtorch) tutorial.
Stars: ✭ 463 (+173.96%)
Mutual labels:  vgg, resnet
RMNet
RM Operation can equivalently convert ResNet to VGG, which is better for pruning; and can help RepVGG perform better when the depth is large.
Stars: ✭ 129 (-23.67%)
Mutual labels:  vgg, resnet
DeepNetModel
记录每一个常用的深度模型结构的特点(图和代码)
Stars: ✭ 25 (-85.21%)
Mutual labels:  vgg, resnet
Tianchi Medical Lungtumordetect
天池医疗AI大赛[第一季]:肺部结节智能诊断 UNet/VGG/Inception/ResNet/DenseNet
Stars: ✭ 314 (+85.8%)
Mutual labels:  resnet, vgg
Keras Idiomatic Programmer
Books, Presentations, Workshops, Notebook Labs, and Model Zoo for Software Engineers and Data Scientists wanting to learn the TF.Keras Machine Learning framework
Stars: ✭ 720 (+326.04%)
Mutual labels:  resnet, vgg
Vgg16 Pytorch
VGG16 Net implementation from PyTorch Examples scripts for ImageNet dataset
Stars: ✭ 26 (-84.62%)
Mutual labels:  resnet, vgg
Tensorrtx
Implementation of popular deep learning networks with TensorRT network definition API
Stars: ✭ 3,456 (+1944.97%)
Mutual labels:  resnet, vgg
Pytorchconv3d
I3D and 3D-ResNets in PyTorch
Stars: ✭ 131 (-22.49%)
Mutual labels:  resnet

全球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等经典模型

要点概述

  • [x] 支持多个单模型进行集成,可选多种集成方式

  • [x] 支持多种集成方式间的任意组合和自动择优

  • [x] 支持间断训练时权重文件的择优选择

  • [x] 支持VGG16VGG19Resnet50Inception-V3XceptionInception-Resnet-V3模型

  • [x] imgaug 图片数据增强库替换Keras自带的图片预处理

  • [x] 支持多进程进行图片预处理

血训

数据增强很重要!!!

Keras自带的图片增强远远不够的,这里选择了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个百分点

找个小伙伴一起搞!!!

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].