I am a newbie to keras, and when I tried to run my first keras program on my linux, something just didn't go as I wish. Here is my python code:
import numpy as np
np.random.seed(123)
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D
from keras.utils import np_utils
from keras.datasets import mnist
(X_train,y_train),(X_test,y_test) = mnist.load_data()
print X_train.shape
from matplotlib import pyplot as plt
plt.imshow(X_train[0])
The last sentence doesn't display anything. I copied those codes from a tutorial with out any modification. And there is nothing wrong with the backend of matplotlib on my computer. I have tested that through the code below.
import matplotlib.pyplot as plt
data = [[0, 0.25], [0.5, 0.75]]
fig, ax = plt.subplots()
im = ax.imshow(data, cmap=plt.get_cmap('hot'), interpolation='nearest',
vmin=0, vmax=1)
fig.colorbar(im)
plt.show()
And then I got a image like that:
Moreover, I can get X_train[0] printed and it seems nothing wrong.
So what could be the reason for that? Why the imshow() function in my first code didn't display anything?
plt.imgshow
displays the image on the axes, but if you need to display multiple images you useshow()
to finish the figure. The next example shows two figures:In Google Colab, if you comment out the
show()
method from previous example just a single image will display (the later one connected withX_train[1]
).Here is the content from the help:
plt.imshow
just finishes drawing a picture instead of printing it. If you want to print the picture, you just need to addplt.show
.The solution was as simple as adding
plt.show()
at the end of the code snippet: