Keras图像分类网络始终预测一个类别,并保持50%的准确性

约书亚·波特

我一直在Keras网络上对图像是否包含交通信号灯进行分类,但到目前为止,我的成功为0。我有一个超过11000张图像的数据集,在我的第一次测试中,我使用了240张图像(或者说,每张图像的文本文件都带有灰度像素值)。只有一个输出-0或1表示图像是否包含交通灯。

但是,当我进行测试时,它只能预测一堂课。考虑到53/240张图像带有交通信号灯,它的准确率一直达到79%,因为它一直都在预测0。我读到这可能是由于数据不均衡所致,因此我将图像缩小为仅4张图像-2张带有交通信号灯,2张没有图像。

即使进行了此测试,在经过5个周期后仍保持50%的精度;这只是预言一堂课!类似的问题已经回答,但我还没有找到对我有用的东西:(

这是我正在使用的代码:

from keras.datasets import mnist
from keras import models
from keras import layers
from keras.utils import to_categorical
import numpy as np
import os

train_images = []
train_labels = []

#The following is just admin tasks - extracting the grayscale pixel values
#from the text files, adding them to the input array. Same with the labels, which
#are extracted from text files and added to output array. Not important to performance. 

for fileName in os.listdir('pixels1/'):
    newRead = open(os.path.join('pixels1/', fileName))

    currentList = []
    for pixel in newRead:
        rePixel = int(pixel.replace('\n', ''))/255
        currentList.append(rePixel)
    train_images.append(currentList)

        
for fileName in os.listdir('labels1/'):
    newRead = open(os.path.join('labels1/', fileName))
    line = newRead.readline()
    train_labels.append(int(line))

train_images = np.array(train_images)
train_labels = np.array(train_labels)

train_images = train_images.reshape((4,13689))

#model

model = models.Sequential()

model.add(layers.Dense(13689, input_dim=13689, activation='relu'))
model.add(layers.Dense(13689, activation='relu'))
model.add(layers.Dense(1, activation='softmax'))

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

model.fit(train_images, train_labels, epochs=5, batch_size=1)

我至少希望它最终能够识别图像。我真的很想继续进行我的全部11,000个示例的培训课程,但是目前我无法使其与4一起使用。

Desertnaut

粗略点:

  1. 您似乎认为密集层中的单位数应等于数据维度(13869);事实并非如此。将它们都更改为较小的值(在100-200范围内)-它们甚至不必相等。不建议您使用相对较小的数据样本(图像)那么大的模型。

  2. 由于您处于二进制分类设置中,因此在最后一层中只有一个节点,因此应activation=sigmoid在该(最后)层中使用,并使用编译模型loss='binary_crossentropy'

  3. 在成像应用中,通常第一对层是卷积层。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Keras:模型之间的分类报告准确性不同。多类的预测准确性

Keras如何计算多类别分类问题的验证准确性和训练准确性?

提高多类别图像分类器的准确性

Keras图像分类:显示的准确性较高,但测试图像的准确性较低

Keras:准确性保持零

Keras顺序模型的准确性很差。模型正在忽略/忽略一个类

Keras二进制分类器教程示例仅提供50%的验证准确性

二项式glmer()预测的分类准确性

Keras CNN的准确性很高,但预测错误。如何改善

Keras 仅对大多数特定预测的准确性

多标签分类keras的怪异准确性

预测的准确性测试

Tensorflow二进制分类训练的损失不会减少,准确性会保持在50%左右

如何增加图像分类器的准确性?

具有许多类别的不平衡数据集,一个热编码问题,F1得分高,但验证集准确性非常低

我的 TensorFlow 网络的准确性似乎并不代表我的网络预测数据的实际能力

R中的预测准确性

发生预测时准确性不佳

TensorFlow 获得单个预测的准确性

寻找一个不错的Linq解决方案以确保定义的准确性

计算分类准确性的最佳方法?

制作一个简单的 KERAS 网络进行分类

我们如何使用神经网络计算多分类器的准确性

Keras:模型。评估与模型。预测多类NLP任务中的准确性差异

验证和测试的准确性良好,但预测不佳 keras lstm

Keras:做预测时ValueError且准确性为零

Tensorflow 和 Keras 如何从单热编码输出到用于计算准确性的类预测?

使用类似于Lenet5的架构,获得比对“ 101个对象类别”数据进行分类的预期更高的准确性

如何在Keras中提高CNN分类器的准确性?