基于keras实现多标签分类(multi-label classification)

a8cd63d26f194e9eb9ad19420b832a67.gif

向AI转型的程序员都关注了这个号👇👇👇

机器学习AI算法工程   公众号:datayx

首先讨论多标签分类数据集(以及如何快速构建自己的数据集)。

之后简要讨论SmallerVGGNet,我们将实现的Keras神经网络架构,并用于多标签分类。

然后我们将实施SmallerVGGNet并使用我们的多标签分类数据集对其进行训练。

最后,我们将通过在示例图像上测试我们的网络,并讨论何时适合多标签分类,包括需要注意的一些注意事项。

相关代码,获取方式:

关注微信公众号 datayx  然后回复 多标签分类 即可获取。

数据集包含六个类别的2,167个图像,包括:

黑色牛仔裤(344图像)
蓝色连衣裙(386图像)
蓝色牛仔裤(356图像)
蓝色衬衫(369图像)
红色连衣裙(380图像)
红色衬衫(332图像)

6类图像数据可以通过python爬虫在网站上抓取得到。

89fc47c2e4dad2c771b23ae03a8cb67b.png

为了方便起见,可以通过使用Bing图像搜索API(Microsoft’s Bing Image Search API)建立图像数据(需要在线注册获得api key,使用key进行图像搜索),python代码:

35ea8c337e82630d73135f01c1048fdd.png

8111c0d4c032945691f626b2d7fa1fa8.png

使用find方法得到下载的图像数据数目

4a3b4b75f677de815daa4aacb14437c9.png

多标签分类multi-label classsification

这里给出的是项目的文件结构 

646052b71c0e6fec91d1cde9f587f309.png

多标签分类的网络结构--smallervggnet【Very Deep Convolutional Networks for Large Scale Image Recognition.】

https://arxiv.org/pdf/1409.1556/

smallervggnet.py

4418494fefa1968d174619ab358661b3.png

590b7fbded06b48db9bcae44184fc0e9.png

470fb5c32583ac5be991963cf1d28057.png

train.py

9144a0a512458c20745c290f93228548.png

fab8f5d0a0b117a4348d0ee20653c55e.png

fc7714ce1e9238ec3e1f813d73dc148a.png

run

2d86e1243b60b2476eaae099909b0c0e.png

继续preprocessing 

e353959fdb15829d6b163aa5b543daab.png

run

08383012e27ca2639d936e72b9a5ab79.png

构建训练和测试数据集,做数据增强

cccc1d6edbd5baf6d20ed62bdb8f24d4.png

构建模型,初始化Adam优化器

e59f63b9f85967115828c418d87320d1.png

编译模型,开始训练

7d4717bc8ceab9bc15c87bc7ade0f25f.png

训练后保存模型,并二值化标签

08879ab2e66728d0fb21d861392eb2d5.png

绘制出acc,loss

d26b79826ea2f1c1e6321c4e4de44800.png

绘制好的结果会保存成图片格式保存。

多标签分类模型训练

python train.py --dataset dataset --model fashion.model --labelbin mlb.pickle

使用训练完成的模型预测新的图像 

classify.py

0983d5338f8d5f9941684966e6bdd37c.png

b551846e8cad66f9ea13557104879555.png

最终显示出预测的分类结果

107414bc47aef3b4de8a0a428807b797.png

使用Keras执行多标签分类非常简单,包括两个主要步骤:

1.使用sigmoid激活替换网络末端的softmax激活
2.二值交叉熵作为分类交叉熵损失函数

shortcomings:

网络无法预测没有在训练集中出现过的数据样品,如果出现的次数过少,预测的效果也不会很好,解决办法是增大数据集,这样可能非常不容易,还有一种用的已经很多的方法用在大的数据集上训练得到的权重数据对网络做初始化,提高模型的泛化能力。

机器学习算法AI大数据技术

 搜索公众号添加: datanlp

e1148a67d3f9dd4d571c4b02b485ebcc.png

长按图片,识别二维码


阅读过本文的人还看了以下文章:

TensorFlow 2.0深度学习案例实战

基于40万表格数据集TableBank,用MaskRCNN做表格检测

《基于深度学习的自然语言处理》中/英PDF

Deep Learning 中文版初版-周志华团队

【全套视频课】最全的目标检测算法系列讲解,通俗易懂!

《美团机器学习实践》_美团算法团队.pdf

《深度学习入门:基于Python的理论与实现》高清中文PDF+源码

《深度学习:基于Keras的Python实践》PDF和代码

特征提取与图像处理(第二版).pdf

python就业班学习视频,从入门到实战项目

2019最新《PyTorch自然语言处理》英、中文版PDF+源码

《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码

《深度学习之pytorch》pdf+附书源码

PyTorch深度学习快速实战入门《pytorch-handbook》

【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》

《Python数据分析与挖掘实战》PDF+完整源码

汽车行业完整知识图谱项目实战视频(全23课)

李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材

笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!

《神经网络与深度学习》最新2018版中英PDF+源码

将机器学习模型部署为REST API

FashionAI服装属性标签图像识别Top1-5方案分享

重要开源!CNN-RNN-CTC 实现手写汉字识别

yolo3 检测出图像中的不规则汉字

同样是机器学习算法工程师,你的面试为什么过不了?

前海征信大数据算法:风险概率预测

【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类

VGG16迁移学习,实现医学图像识别分类工程项目

特征工程(一)

特征工程(二) :文本数据的展开、过滤和分块

特征工程(三):特征缩放,从词袋到 TF-IDF

特征工程(四): 类别特征

特征工程(五): PCA 降维

特征工程(六): 非线性特征提取和模型堆叠

特征工程(七):图像特征提取和深度学习

如何利用全新的决策树集成级联结构gcForest做特征工程并打分?

Machine Learning Yearning 中文翻译稿

蚂蚁金服2018秋招-算法工程师(共四面)通过

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

斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)

python+flask搭建CNN在线识别手写中文网站

中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程

不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  

161a4b1a6d47ac2110637d94899005a7.png

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值