In [0]:
from keras.datasets import mnist
import matplotlib.pyplot as plt
(X_train,y_train), (X_test, y_test)=mnist.load_data()
In [18]:
plt.subplot(221)
plt.imshow(X_train[0], cmap=plt.get_cmap('gray'))
plt.subplot(222)
plt.imshow(X_train[10], cmap=plt.get_cmap('gray'))
plt.show()
In [0]:
import numpy
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.utils import np_utils
In [0]:
# fix random seed for reproducability
seed = 7
numpy.random.seed(seed)
In [0]:
#flatten 28*28 images to a 784 vector for feeding to perceptron
num_pixels= X_train.shape[1]*X_train.shape[2]
X_train=X_train.reshape(X_train.shape[0],num_pixels).astype('float32')
X_test=X_test.reshape(X_test.shape[0],num_pixels).astype('float32')
In [0]:
X_train = X_train / 255
X_test = X_test / 255
#one hot encode outputs
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)
num_classes=y_test.shape[1]
In [0]:
# Base line Model
def baseline_model():
model=Sequential()
model.add(Dense(num_pixels, input_dim=num_pixels, kernel_initializer='normal',activation='relu'))
model.add(Dense(num_classes, kernel_initializer='normal',activation='softmax'))
#Compile Model
model.compile(loss='categorical_crossentropy', optimizer='adam',metrics=['accuracy'])
return model
In [20]:
model=baseline_model()
model.fit(X_train,y_train, validation_data=(X_test,y_test),epochs=10,batch_size=200,verbose=2)
#Final Evaluation model
scores=model.evaluate(X_test,y_test, verbose=0)
print("Error: %.2ff%%" % (100-scores[1]*100))
In [0]:
In [0]:
In [0]:
In [0]:
In [0]:
In [0]: