情境
我正在构建一个模型,用于识别给定图像中的三个类别
有三类:
性别:男/女
类型clotes:开拓者,开拓者&夹克,衬衫,开衫,外套,外套和夹克,裙裤,连衣裙,牛仔裤,套头衫,连身衣和工装裤,针织衫和运动衫,护腿& CigaretteTrousers,Maternity,Polo,Pololong,Shirts,Shorts,Skirts,Suits,Swimwear,Swimwear&沙滩装,T恤,T恤和&上衣,长裤,罩衫。
换句话说,每张图片都应该有这3个类别(每个类别一个值)。
数据
我的训练我的模型的数据库由 1812 图像和一个excel文件组成,其中包含每个图像(及其网址)的三个类别的值。
以下是有关我的数据库的一些信息:
我做了什么
很明显,我处于多标签分类环境中
的 1。清洁&预处理我的数据
我创建了(X,Y)数据,其中 X 的形状(1814,204,204,3)且 Y 形状(1814,39)'' 39对应于虚拟变量:类别1具有2个属性,类别2具有26个属性,类别3具有11个属性:因此总计为39''。
的 2。建立我的神经网络
我的模型的不同参数是:
我训练有素的网络结构如下:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_3 (Conv2D) (None, 204, 204, 32) 896
_________________________________________________________________
dropout_3 (Dropout) (None, 204, 204, 32) 0
_________________________________________________________________
conv2d_4 (Conv2D) (None, 204, 204, 32) 9248
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 102, 102, 32) 0
_________________________________________________________________
flatten_2 (Flatten) (None, 332928) 0
_________________________________________________________________
dense_3 (Dense) (None, 512) 170459648
_________________________________________________________________
dropout_4 (Dropout) (None, 512) 0
_________________________________________________________________
dense_4 (Dense) (None, 39) 20007
_________________________________________________________________
activation_1 (Activation) (None, 39) 0
=================================================================
Total params: 170,489,799
Trainable params: 170,489,799
Non-trainable params: 0
问题
答案 0 :(得分:0)
嗯,有很多主题和网页关于"接下来要尝试的内容"和#34;如何使神经网络工作"但我会从
开始1)平衡数据,使每个标签看起来均等。如果您的大多数数据集都是由男性,蓝色牛仔裤和#34;那么这将最有助于损失函数,因此优化器将专注于这种情况,但不是,例如,女性,Fedora"案例,你可以有一个样本。因此,只需复制数据,以便所有采样均匀显示。您还可以执行加权成本,但需要更多参与。
2)从上面继续,从一个小的平衡数据集开始,看看你是否可以过度拟合(从每个类中选择一个数据点)。这将为您提供一个良好的起点并消除错误。从那时起,开始添加越来越多的数据并监控损失功能。
3)对于指标,计算准确性,精确度和每个类的召回(性别,类型,颜色)。如果你没有很多课程,你也可以计算出我个人最喜欢的混淆矩阵。在这个优秀的页面上有一个很好的混淆矩阵(和其他指标)演示(演示:查看神经网络) https://ml4a.github.io/ml4a/looking_inside_neural_nets/
祝你好运。