繁体   English   中英

为什么我的模型即使在 >93 准确度后也给出相同的结果? 结果 >> 数组([[1., 0., 0.]], dtype=float32)

[英]why my model is giving same result even after >93 accuracy ? result >> array([[1., 0., 0.]], dtype=float32)

train_datagen = ImageDataGenerator(rescale = 1./255,
                                   shear_range = 0.2,
                                   zoom_range = 0.2,
                                   horizontal_flip = True)


training_set = train_datagen.flow_from_directory('images',
                                                 target_size = (64, 64),
                                                 batch_size = 32,
                                                 class_mode = 'categorical')

#Found 27659 images belonging to 3 classes.



classifier = Sequential()

# Step 1 - Convolution
classifier.add(Convolution2D(32, kernel_size=(3,3), strides=(1,1), input_shape = (64, 64, 3), activation = 'relu'))

classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Convolution2D(64, (3,3), 2, activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Flatten())

classifier.add(Dense(128, activation = 'relu'))

classifier.add(Dense(3, activation = 'softmax'))


classifier.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])


classifier.fit_generator(training_set,
                         steps_per_epoch = 50,
                         epochs = 30) 

test=image.load_img("./image.png",target_size=(64,64))

test=image.img_to_array(test)

import numpy as np

test=np.expand_dims(test,axis=0)

result=classifier.predict(test)

result

# result is always same as below
#array([[1., 0., 0.]], dtype=float32)


**为什么我总是得到相同的答案,我增加了时代但仍然相同,为什么它真的发生了,对于我已经完成的 2 个课程,但对于 3 个或更多课程它不起作用,或者你可以给我另一个超过 3 个类的代码来预测然后另一个问题是如何根据我们的目录设置标签,例如

images---
    -----cat folder
    -----dog folder
    -----fish folder

但在标签中它会像 [0,0,...,222] 我怎么知道 0 是猫还是狗? **

我刚刚用两个类(猫和狗)尝试了你的代码,我已经修改了你的代码以在二进制模式下工作,特别是最后一个密集层,softmax 到 sigmoid 和损失函数使其工作。 但是我可以看到您可以通过以下改进来做到这一点 1. 增加图像的分辨率 2. 增加网络大小(宽度和高度) 3. 添加验证数据以检查模型性能。 依靠验证准确性而不是训练准确性总是好的。 如果验证准确性良好,则意味着您的模型可能在测试数据集上表现良好。

在这种情况下,我真的认为您不需要关心标签,因为您可能在相应的文件夹中有数据,而 ImageDataGenerator 会解析该文件夹结构并自动生成标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM