我正在使用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格式显示图像。救命!
答案 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])))
答案 2 :(得分:0)
您可以使用tf.squeeze
从张量形状中删除尺寸为1的尺寸。
plt.imshow( tf.shape( tf.squeeze(x_train) ) )
答案 3 :(得分:0)
很简单:matplotlib.pyplot.imshow()
不支持形状为(h, w, 1)
的图像。通过将图像重塑为(h, w)
:newimage = reshape(img,(h,w))
,只需移除图像的最后一个尺寸即可。