Python 可视化MNIST数据集中的10个随机测试示例、预测标签和实际标签
我试图可视化10个随机测试示例,MNIST数据集的预测标签和实际标签。但我得到了这个错误 TypeError:图像数据的形状(28,28,1)无效 谁能帮我纠正这个错误吗?将测试示例、谓词标签和实际标签可视化是正确的方法吗Python 可视化MNIST数据集中的10个随机测试示例、预测标签和实际标签,python,tensorflow,keras,deep-learning,Python,Tensorflow,Keras,Deep Learning,我试图可视化10个随机测试示例,MNIST数据集的预测标签和实际标签。但我得到了这个错误 TypeError:图像数据的形状(28,28,1)无效 谁能帮我纠正这个错误吗?将测试示例、谓词标签和实际标签可视化是正确的方法吗 %tensorflow_version 1.x import tensorflow as tf from matplotlib import pyplot import matplotlib.pyplot as plt import random print(tf.__ve
%tensorflow_version 1.x
import tensorflow as tf
from matplotlib import pyplot
import matplotlib.pyplot as plt
import random
print(tf.__version__)
mnist = tf.keras.datasets.mnist
(training_images, training_labels), (test_images, test_labels) = mnist.load_data()
training_images = training_images.reshape(60000, 28, 28, 1)
training_images = training_images / 255.0
#visualizing 10 random test examples
for i in range(10):
pyplot.subplot(330 + 1 + i)
pyplot.imshow(test_images[i], cmap=pyplot.get_cmap('gray'))
pyplot.show()
test_images = test_images.reshape(10000, 28, 28, 1)
test_images = test_images/255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(28, 28, 1)),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(training_images, training_labels, epochs=10)
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(test_acc)
只需删除最后一个轴,使图像的大小为(28,28)而不是(28,28,1)。Pyplot需要3维RGB图像或只有2维的黑白图像。请尝试:
pyplot.imshow(np.squeeze(test_images[i]), cmap=pyplot.get_cmap('gray'))