2017-03-15 17 views
6

Jestem początkującym w keras, i kiedy próbowałem uruchomić mój pierwszy program Keras na moim Linuxie, coś po prostu nie poszło tak, jak chcę. Oto mój kod Python:Dlaczego funkcja plt.imshow() nie wyświetla obrazu?

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]) 

ostatnie zdanie nie wyświetla niczego. Skopiowałem te kody z samouczka bez żadnej modyfikacji. I nie ma nic złego z backendem matplotlib na moim komputerze. Przetestowałem to za pomocą poniższego kodu.

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() 

A potem dostałam obraz tak: enter image description here


Ponadto mogę X_train [0] drukowane i wydaje się nic złego.
Jaki był tego powód? Dlaczego funkcja imshow() w moim pierwszym kodzie nic nie wyświetla?

+5

Spróbuj dodać 'plt.show()' na końcu fragmentu kodu. –

+0

@ MarcinMożejko Oh wielkie dzięki! To działa! –

+0

OK - więc wysłałem odpowiedź. –

Odpowiedz

11

Rozwiązaniem było tak proste, jak dodanie plt.show() na końcu fragmentu kodu:

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]) 
plt.show() 
1

Myślisz plt.imshow zostanie wydrukowany obraz dla ciebie jak plt.show? W rzeczywistości nie, plt.imshow nie pokazuje obrazu, to tylko po prostu zakończyć rysowanie obrazu zamiast go drukować. Jeśli chcesz je wydrukować, musisz dodać to: plt.show, aby pokazać to zdjęcie.

Powiązane problemy