首页 > 编程知识 正文

cnn图像分类,基于卷积神经网络的图像分类

时间:2023-05-04 15:11:06 阅读:26101 作者:3997

摘要

深度学习与人物穿着的服装图像分类相结合是当前研究的热点之一,但目前服装图像分类主要是分单个标签单独处理。 现实生活中,随着网购等服装商务新模式的出现,复杂决策的迫切需求,单标签服装图像分类已经不能解决问题,多标签服装图像分类成为重要的学习问题,显示出巨大的应用价值。 多标签服装图像分类的目标是预测各服装图像的一组服装属性标签。

1.http://www.Sina.com/multi-labelclassificationproblem :称为多标签分类或多标签分类。 指出一个样本的标签数目为多个,即一个样本对应于多个标签。

为了便于理解多标签,举个例子吧。 http://www.Sina.com/http://www.Sina.com/的http://www.Sina.com /

黑色粗体字体的标签可以设置如下:

黑色

蓝色的

德里斯

简。

红色

超人力霸王

电子邮件

文件

.可以在“female”“red”shirt”01100001 . multilabelbinarizer ()”的fit中获得上述label的代码。

2. 多标签分类定义

传统上,在实现多分类任务时,经常使用softmax函数,其输出如下:

z=NP.array ([-1.0,5.0,- 0.5,5.0,-0.5] ) print(softmax_sim(z ) ) #输出为[0. 00123281.49735104.0020303 这显然不是我们想要的,因为样本属于每个标签的概率应该是独立的。 因此,完成整个模型的构建后,最后一步最重要的是为编译模型选择损失函数。 多标签分类经常使用binary_crossentropy损失,而不是在多类分类中使用categorical_crossentropy损失函数。 虽然这可能看起来不合理,但由于每个输出节点都是独立的,因此选择二元丢失并将网络输出建模为每个标签的独立伯努利分布。 多标签分类的整个模型如下。

from keras.modelsimportmodelfromkeras.layersimportinput,denseinputs=input(shape=(10, ) )隐藏=dense ) ) units=activation='relu'(inputs ) output=dense(units=5,activation='sigmoid ' ) hidden

女性蓝色裙子: female_bule_dress:415条

女性蓝色t袖: female_bule_shirt:311件

女性红裙子: female_red_dress:259件

男性黑色t袖: male_black_shirt:257件

男性蓝色t袖: male_bule_shirt:247件

男性红色t袖: male_bule_shirt:194件

4 .模型实现与训练classsmallervgnet : @ staticmethoddefbuild (width,height,depth,classes,final act=' soft max ' (3: ) width,depth ) chandim=-1 ifk.image _ data _ format (==' channels _ first ' : input shape=(depth,height,wigh ) padding='same ',input_shape=inputShape ) (model.add ) activation('relu ' ) model.add ) batchnormalization 3 3 )、padding='same ' ) (model.add(activation ) relu ) (model.add ) batch normalization (axis=chandim ) ) (model ) (model.add(activation ) relu ) ) model.add ) batch normalization (axis=chandim ) ) model.add () 3 )、padding='same ' ) (model.add(activation ) relu ) (model.add ) batch normalization (axis=chandim ) ) (model ) (model.add(activation ) relu ) ) model.add ) batch normalization (axis=chandim ) ) model.add () odel.add ) activation ) ) activation model.add(dropout ) 0.5 ) model.add (dense ) classes (model.add ) activation )

5 .实验结果展示

从上面的损失图可以看出,训练损失在20个epoch结束前非常平稳地下降。 但是,验证损失图会有很大的变动。 训练时间在20个以上的epoch似乎会引起过度的拟合。 最终,使用测试函数进行了测试。

数据集下载链接: https://download.csdn.net/download/weixin _ 40651515/22284807

数据集和代码下载资源: https://download.csdn.net/download/weixin _ 40651515/22286694

代码执行环境配置: python3.6.5、tensorflow==1.12、keras==2.2.4

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。