在Tensorflow Mist教程中显示预测图像的问题

时间:2019-03-03 10:49:46

标签: python python-3.x tensorflow matplotlib

我正在使用Tensorflow beginner mnist tutorial(下面的代码)中的代码。

 import tensorflow as tf
 mnist = tf.keras.datasets.mnist

 (x_train, y_train),(x_test, y_test) = mnist.load_data()
 x_train, x_test = x_train / 255.0, x_test / 255.0

 model = tf.keras.models.Sequential([
   tf.keras.layers.Flatten(input_shape=(28, 28)),
   tf.keras.layers.Dense(512, activation=tf.nn.relu),
   tf.keras.layers.Dropout(0.2),
   tf.keras.layers.Dense(10, activation=tf.nn.softmax)
 ])
 model.compile(optimizer='adam',
               loss='sparse_categorical_crossentropy',
               metrics=['accuracy'])

 model.fit(x_train, y_train, epochs=5)
 model.evaluate(x_test, y_test)

由于本教程在评估模型后停止,因此我添加了几行进行实际的预测。

 predictions = model.predict([x_test])
 print(np.argmax(predictions[0]))

到目前为止,一切正常。但是,我想查看模型试图预测的图像以了解发生了什么。因此,我尝试了以下操作:

 import matplotlib.pyplot as plt
 plt.imshow(x_test[0])
 plt.show()

这不起作用。我没有收到错误消息,只是不会显示图片。此外,如果我尝试在matplotlib代码之后添加一个简单的打印语句,该代码也会被忽略并且不会被打印。知道发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

您报告.show()在当前配置中无法正常工作。与其打电话,您可能不喜欢这样:

plt.savefig('plot.png')

如果需要,可以将其与无头驱动程序一起使用:

import matplotlib
matplotlib.use('Agg')