# from keras.models import Sequential# from keras.layers.core import Dense,Activation,Flatten#creating the Sequential model# model=Sequential()# #layer 1 --adding a flatten layer# model.add(Flatten(input_shape=(32,32,3)))# #layer 2 --adding a fully connected layer# model.add(Dense(100))# #layer 3 --add a Relu activation layer# model.add(Activation("relu"))# #layer 4 --adding a fully connected layer# model.add(Dense(60))# #layer 5 --adding a Relu activation layer# model.add(Activation("relu"))import numpy as npimport matplotlib.pyplot as pltfrom keras.datasets import mnistfrom keras.models import Sequentialfrom keras.layers.core import Dense,Dropout,Activationfrom keras.utils import np_utils#retrieving the training and test data(x_train,y_train),(x_test,y_test)=mnist.load_data()print("x_train_shape",x_train.shape)print("y_train_shape",y_train.shape)print("x_test_shape",x_test.shape)print("y_test_shape",y_test.shape)#visualize the dataimport matplotlib.pyplot as plt#display a training image by its index in the MNIST setdef disply_digit(index): label=y_train[index].argmax(axis=0) image=x_train[label] plt.title("training data,index:%d,label:%d" %(index,label)) plt.imshow(image,cmap="gray_r") plt.show()#display the first (index 0)training imagedisply_digit(0)x_train=x_train.reshape(60000,784)x_test=x_test.reshape(10000,784)x_train=x_train.astype("float32")x_test=x_test.astype("float32")x_train/=255x_test/=255print("train the marix shape",x_train.shape)print("test the matrix shape",x_test.shape)#one hot encoding of labelsfrom keras.utils.np_utils import to_categoricalprint(y_train.shape)y_train=to_categorical(y_train,10)y_test=to_categorical(y_test,10)#def the neural networkdef build_model(): model=Sequential() model.add(Dense(512,input_shape=(784,))) model.add(Activation("relu")) model.add(Dropout(0.2)) model.add(Dense(512)) model.add(Activation("relu")) model.add(Dropout(0.2)) model.add(Dense(10)) model.add(Activation("softmax")) return model#build the modelmodel=build_model()model.compile(optimizer="rmsprop",loss="categorica_crossentropy",metrics=["accuracy"])#traningmodel.fit(x_train,y_train,batch_size=128,nb_epoch=4,verbose=1,validation_data=(x_test,y_test))#comparing the labels predicted by our model with the actual labelsscore=model.evaluate(x_test,y_test,batch_size=2,verbose=1,sample_weight=None)print("test score",score[0])print("test accuarcy",score[1])
来源:https://www.cnblogs.com/hapyygril/p/11335843.html