如何提高cifar-100数据集的准确性?我目前的准确度是10%

保罗·麦克伯尼

我正在做一个有趣的cifar-100数据集的小项目。我不确定为什么我的准确率低10%。这是我的代码,有人可以帮忙吗?谢谢所有人(fyi,cifar-100数据集是具有100种图像的keras数据集。)

import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt

#print(train_images[0])
#print("Network Accuracy: " + str(test_acc))
# plt.imshow(train_images[0], cmap=plt.cm.binary) #greyscale
# plt.imshow(train_images[0]) #neon
# plt.show()

cifar100_mnist = keras.datasets.cifar100

(train_images, train_labels), (test_images, test_labels) = cifar100_mnist.load_data()
print(train_images)
print("-")
print(train_labels)
train_images = train_images/255
test_images = test_images/255
classes = [
    'apple', 'aquarium_fish', 'baby', 'bear', 'beaver', 'bed', 'bee', 'beetle',
    'bicycle', 'bottle', 'bowl', 'boy', 'bridge', 'bus', 'butterfly', 'camel',
    'can', 'castle', 'caterpillar', 'cattle', 'chair', 'chimpanzee', 'clock',
    'cloud', 'cockroach', 'couch', 'crab', 'crocodile', 'cup', 'dinosaur',
    'dolphin', 'elephant', 'flatfish', 'forest', 'fox', 'girl', 'hamster',
    'house', 'kangaroo', 'keyboard', 'lamp', 'lawn_mower', 'leopard', 'lion',
    'lizard', 'lobster', 'man', 'maple_tree', 'motorcycle', 'mountain', 'mouse',
    'mushroom', 'oak_tree', 'orange', 'orchid', 'otter', 'palm_tree', 'pear',
    'pickup_truck', 'pine_tree', 'plain', 'plate', 'poppy', 'porcupine',
    'possum', 'rabbit', 'raccoon', 'ray', 'road', 'rocket', 'rose',
    'sea', 'seal', 'shark', 'shrew', 'skunk', 'skyscraper', 'snail', 'snake',
    'spider', 'squirrel', 'streetcar', 'sunflower', 'sweet_pepper', 'table',
    'tank', 'telephone', 'television', 'tiger', 'tractor', 'train', 'trout',
    'tulip', 'turtle', 'wardrobe', 'whale', 'willow_tree', 'wolf', 'woman',
    'worm'
]
model = keras.Sequential([
    keras.layers.Flatten(input_shape=(32, 32, 3)),
    keras.layers.Dense(500, activation="relu"),
    keras.layers.Dense(100, activation="softmax")
])

model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"])
model.fit(train_images, train_labels, epochs=5)

test_loss, test_acc = model.evaluate(test_images, test_labels)
print(test_acc)
# print(test_images)
prediction = model.predict(test_images)
answer = np.argmax(prediction[0])
print(classes[answer])
# print(train_images[0])
plt.imshow(train_images[0])
plt.show()

希望我能得到答案,谢谢大家,我非常感谢您的帮助。

特威尼

有关您的任务的实现卷积的示例:

model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(64, (3,3), activation='relu', input_shape=(32, 32, 3)),
    tf.keras.layers.MaxPooling2D(2, 2),
    tf.keras.layers.Conv2D(64, (3, 3), activation='relu'),
    tf.keras.layers.MaxPooling2D(2, 2),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(512, activation='relu'),
    tf.keras.layers.Dense(100, activation='softmax')
])

model.summary()

尝试更多的时期(例如25个):

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

history = model.fit(train_images, train_labels, epochs=25)

您可以在Trainingset上获得高精度:

时代25/25 50000/50000 [=============================]-12s 248us / sample-损失:0.2362-acc :0.9243

让我们看一下测试精度:

test_loss, test_acc = model.evaluate(test_images, test_labels)
print(test_acc)
prediction = model.predict(test_images)

10000/10000 [=============================]-1s 139us / sample-损耗:7.7701-acc:0.3272 0.3272

这意味着您的模型超出了训练集。

自己尝试:

image_number = 5
answer = np.argmax(prediction[image_number])
print(classes[answer])
plt.imshow(train_images[image_number])

蜥蜴

显然没有蜥蜴:)

显然没有蜥蜴:)

从这里开始机器学习的任务。改善模型以减少偏差和方差并获得高精度。我仍然在学习,所以我希望这可以为您指明正确的方向。

但是请注意此数据集。您可以在CIFAR-100页面上阅读

有100个类别,每个类别包含600张图像。每个课程有500张训练图像和100张测试图像。

500张图像太少了,无法训练CNN,这将导致过拟合。我认为CIFAR 10更适合初学者?他们在同一页上提到:

[...]没有数据扩充的18%测试错误[...]

试验一下会更有趣:)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用INRIA数据集正确测试我的准确性

来自分类Dev

提高SVM的准确性

来自分类Dev

如何评估/提高具有不平衡数据集的神经网络预测的准确性?

来自分类Dev

验证准确度没有提高

来自分类Dev

对于任何分类算法,我们如何修改训练数据集以在少数类上获得更好的准确性?

来自分类Dev

如何在深度学习中提高准确性和验证准确性

来自分类Dev

如何从样本数据中计算准确度分数?

来自分类Dev

如何使用OpenCV提高Grabcut算法的准确性?

来自分类Dev

QML Timer-如何提高准确性?

来自分类Dev

如何使用OpenCV提高Grabcut算法的准确性?

来自分类Dev

如何提高前馈神经网络的准确性?

来自分类Dev

如何提高tesseract.js的准确性?

来自分类Dev

如何提高模型损失和准确性?

来自分类Dev

如何提高这种图像的tesseract准确性?

来自分类Dev

如何提高Windows语音识别的准确性?

来自分类Dev

如何使用OpenCV提高Grabcut算法的准确性?

来自分类Dev

如何提高表单识别器的准确性?

来自分类Dev

仅当验证准确性提高时,如何才能保存/覆盖我的TensorFlow / Keras模型?

来自分类Dev

我如何使用 TFLearn 与训练指标(当前验证准确度、训练准确度等)进行交互?

来自分类Dev

提高缩小图像的准确性

来自分类Dev

辍学层将提高准确性

来自分类Dev

验证损失和准确性提高

来自分类Dev

随机森林提高准确性

来自分类Dev

提高QR码读取的准确性

来自分类Dev

为什么数据增强不能提高CNN中纹理分类的准确性?

来自分类Dev

如何使用深度神经网络提高验证准确性?

来自分类Dev

如何在Scikit python中提高逻辑回归的模型准确性?

来自分类Dev

如何使用sklearn从决策树模型提高预测的准确性?

来自分类Dev

如何提高模型的准确性?(猫vs狗图像识别)

Related 相关文章

  1. 1

    如何使用INRIA数据集正确测试我的准确性

  2. 2

    提高SVM的准确性

  3. 3

    如何评估/提高具有不平衡数据集的神经网络预测的准确性?

  4. 4

    验证准确度没有提高

  5. 5

    对于任何分类算法,我们如何修改训练数据集以在少数类上获得更好的准确性?

  6. 6

    如何在深度学习中提高准确性和验证准确性

  7. 7

    如何从样本数据中计算准确度分数?

  8. 8

    如何使用OpenCV提高Grabcut算法的准确性?

  9. 9

    QML Timer-如何提高准确性?

  10. 10

    如何使用OpenCV提高Grabcut算法的准确性?

  11. 11

    如何提高前馈神经网络的准确性?

  12. 12

    如何提高tesseract.js的准确性?

  13. 13

    如何提高模型损失和准确性?

  14. 14

    如何提高这种图像的tesseract准确性?

  15. 15

    如何提高Windows语音识别的准确性?

  16. 16

    如何使用OpenCV提高Grabcut算法的准确性?

  17. 17

    如何提高表单识别器的准确性?

  18. 18

    仅当验证准确性提高时,如何才能保存/覆盖我的TensorFlow / Keras模型?

  19. 19

    我如何使用 TFLearn 与训练指标(当前验证准确度、训练准确度等)进行交互?

  20. 20

    提高缩小图像的准确性

  21. 21

    辍学层将提高准确性

  22. 22

    验证损失和准确性提高

  23. 23

    随机森林提高准确性

  24. 24

    提高QR码读取的准确性

  25. 25

    为什么数据增强不能提高CNN中纹理分类的准确性?

  26. 26

    如何使用深度神经网络提高验证准确性?

  27. 27

    如何在Scikit python中提高逻辑回归的模型准确性?

  28. 28

    如何使用sklearn从决策树模型提高预测的准确性?

  29. 29

    如何提高模型的准确性?(猫vs狗图像识别)

热门标签

归档