实战阿里天池竞赛——服饰属性标签识别


#1

在第一季课程中,大家做了不少课程作业,也参与了两场Kaggle竞赛,相信已经积累了一些深度学习做实际项目的经验。

最近,阿里巴巴的天池算法竞赛平台上线了一场有着高额奖金的算法竞赛:FashionAI全球挑战赛—服饰属性标签识别。第一名队伍将有50万人民币的奖金!是不是非常动心?

心动不如行动,我们给大家准备了一份基于gluon的上手教程与成绩不差的参赛样例代码,赶紧来试试吧:https://github.com/hetong007/Gluon-FashionAI-Attributes

在这场竞赛中,主办方提供了八种不同服饰的图片数据,每种服饰的训练数据有大约一万张图片,选手们的任务就是设计一个算法对图片中服饰的属性做出准确判断。例如其中的裙子类图片,就分为不可见,短裙,中裙,七分裙,九分裙和长裙等总共六种属性。我们可以将其视为经典的图片分类问题,并通过卷积神经网络来解决。同时,因为问题提供的数据量有限,因此我们采取课程中提到过的迁移学习方法,从一个在ImageNet上预训练好的模型出发,通过微调来达到不错的效果。

如果在运行过程中遇到了错误,欢迎发帖留言并附上详细的报错信息与运行环境

欢迎大家踊跃参赛,并祝大家取得好的成绩!


常见问题

  1. 预训练模型无法下载怎么办?
    • gluon会默认从海外S3服务器下载预训练模型,国内用户可使用国内Gluon镜像。
      具体设置请参考这个教程:http://zh.gluon.ai/chapter_prerequisite/install.html 中的“国内用户可使用国内Gluon镜像加速数据集和预训练模型的下载”一节。
    • 运行 benchmark.sh 脚本可使用 MXNET_GLUON_REPO=https://apache-mxnet.s3.cn-north-1.amazonaws.com.cn/ bash benchmark.sh
  2. 我提交了预测结果但是没有显示成绩?
    • 官网说明:“系统每天进行2次评测和排名,评测开始时间为当天12:00和22:00,按照评测指标从高到低进行排序,定时更新排行榜;”
  3. 还没开始跑就报错了,但是在报错信息中看到了OpenCV字样?
    • 可能有图片在解压/复制过程中被损坏,请重新解压并准备数据。
  4. 还没开始跑就报错了,但是在报错信息中看到了“cudaMalloc failed: out of memory”?
    • 显存不足,可以调整图片大小或者是batch_size大小。
  5. 如何存取训练好的模型?
    • 四月初Repo有针对性更新
    • 在训练脚本中用finetune_net.save_params('filename.params')保存下来。
    • 可以通过以下代码读取对应模型文件
net = gluon.model_zoo.vision.get_model(model_name)
with net.name_scope():
    net.output = nn.Dense(task_num_class)
net.load_params('filename.params', ctx=mx.gpu())

FashionAI服装属性标签大赛参赛经验
#2

最好能多加点注释
一个函数一个
方便新人嘛


#3

赞比赛教程!


#4

您好,为什么我在运行时一直出现python出问题,已经停止工作


#5

是内存不够吗


#7

报错信息是什么?

代码默认是用4块GPU的,首先把bash文件里面的num_workers和num_gpus改成合适自己系统的配置,不然就会出错。


#8

好的,谢谢,:joy:batch size貌似太大,我改成32就可以运行,报错之前是out of memory,电脑太弱了


#9

也可以先试试resnet18_v2这种小的模型,训练也比较快


#10

好的,:grinning:感谢分享和回答~


#11

决战天池竞赛,欢迎有志朋友加入团队:决战天池竞赛,欢迎有志朋友加入团队


#12

决战天池竞赛,欢迎加入团队:决战天池竞赛,欢迎有志朋友加入团队


#13

使用官方的脚本代码,在训练第10个epoch时候就开始出现了训练精度和验证精度特别大,请问是不是过拟合特别严重,,迁移模型:resnet50_v2 ,官方脚本我只修改了GPU个数:1,CPU核心数:4, batchsize:32
GPU型号 :GTX1070TI-8G
GPU个数 :1
CPU核心 :4
epoch :40
batchsize:32
运行显存;5309 / 8112 65%
跪求,沐神建议吧,十分感谢!


#14

提交的结果呢?


#15

开始训练时间:11:05,2个半小时才跑了前两个任务,晚上出结果提交一下,
还有我截图中,
第1个任务(Training for Task: collar_design_labels)的每个epoch耗时是80秒,
第2个任务(Start Training for Task: neckline_design_labels)的每个epoch耗时是160秒,超参数都一样
耗时差别翻了一倍,难道是数据size和个数不一样吗?谢谢!


#16

windows经常出现问题,还有最好用脚本在lunix上运行,既快又节省显存


#17

数据size和个数自然会影响运行时间。


#18

我提交了运行zip压缩包,为什么没有成绩显示?
谢谢!%E6%AF%94%E8%B5%9B%E7%BB%93%E6%9E%9C%E6%8F%90%E4%BA%A4


#19

请仔细阅读官网说明:“系统每天进行2次评测和排名,评测开始时间为当天12:00和22:00,按照评测指标从高到低进行排序,定时更新排行榜;”


#20

提交结果排名如何?


#21

排名80,还的继续改进,我现在在跑第二个版本,今天再提交一次