plt.imshow()中图像数据的尺寸无效

时间:2019-02-13 07:01:09

标签: python-3.x matplotlib keras typeerror mnist

我正在使用mnist数据集在keras背景下训练胶囊网络。 训练后,我想显示mnist数据集中的图像。为了加载图像,使用了mnist.load_data()。数据存储为(x_train,y_train),(x_test,y_test)。 现在,为了可视化图像,我的代码如下:

Set

代码给出的输出如下:

img_path = x_test[1]  
print(img_path.shape)
plt.imshow(img_path)
plt.show()

和plt.imshow(img_path)上的错误如下:

(28, 28, 1)

如何以png格式显示图像。救命!

4 个答案:

答案 0 :(得分:3)

根据@sdcbr使用np.sqeeze的注释,可以减少不必要的尺寸

import numpy as np  
import matplotlib.pyplot as plt
plt.imshow(np.squeeze(img_path))

答案 1 :(得分:1)

示例:

plt.imshow(test_images[0])

TypeError:图像数据的形状无效(28、28、1)

更正:

plt.imshow((tf.squeeze(test_images[0])))

Number 7

答案 2 :(得分:0)

您可以使用tf.squeeze从张量形状中删除尺寸为1的尺寸。

plt.imshow( tf.shape( tf.squeeze(x_train) ) )

Check out TF2.0 example

答案 3 :(得分:0)

很简单:matplotlib.pyplot.imshow()不支持形状为(h, w, 1)的图像。通过将图像重塑为(h, w)newimage = reshape(img,(h,w)),只需移除图像的最后一个尺寸即可。