• Stars
    star
    113
  • Rank 308,371 (Top 7 %)
  • Language
    Python
  • License
    MIT License
  • Created over 6 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

FashionAI Global Challenge—Attributes Recognition of Apparel—Ranked 21st solution.


环境

  • ubuntu16.04/windows10
  • python 3.6.2
  • keras 2.1.6
  • tensroflow 1.8.0
  • opencv-python 3.4
  • imgaug 0.2.5

使用

  • 因为懒,代码写完就跑,跑完就算,没怎么优化与封装
  • config.py-------------配置了样本目录等信息
  • cal_std_mean.py------计算数据集的std与mean
  • Multitask_train.py----训练脚本
  • Multitask_predict-----预测脚本
  • dataset.py------------数据预处理
  • inceptionv4.py--------Inceptionv4模型API
  • 这里下载数据集,解压到datasets文件夹下,就可以执行python Multitask_train.py进行训练了

思路分享

  • 迁移学习+多任务学习+模型融合
  • 分别设计了两个多任务模型结构如下:
    • 长度类别多输出模型:
    • 领子类别多输出模型:
  • 融合Inceptionv4与Inceptionresnetv2,分别进行预测再对结果做平均
  • 对测试集样本进行增广

提高分数的技巧

  • shuffle很重要
  • 多任务学习比单任务学习成绩提高1-2%
  • 合适的图像增广,推荐使用imgaug,功能强大。dataset.py有详细代码,能提高2-3%
  • 图像标准化,计算本数据集的std与mean,而不是直接用imagenet的std与mean,提高0.5-1%
  • 增大图像输入尺寸可提高分类准确率,提高1-2%
  • finetune,算力允许的前提下finetune整个模型,对比只训练最后一层提高3-5%
  • 使用Adam先快速收敛,再用SGD慢慢调,效率会比较高
  • 模型融合,提高1-2%
  • 对测试集进行增广,本例选择了镜像,加上旋转5、10、15度进行预测,最后再取平均,提高0.5-1%