引言:最近在闭关学习中,由于多久没有写博客了,今天给大家带来学习的一些内容,还在学习神经网络的同学,跑一跑下面的代码,给你一些自信吧!Nice 奥里给!
正文:首先该impor的库就不多说了,不会的就pip install something that you got it
读者也可以在下方代码片里面直接下载:
mnist.load_data(data)=mnist.load_data()
# Practice mnist
from keras.datasets import mnist
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.layers import Flatten
from keras.layers.convolutional import MaxPooling2D
from keras.layers.convolutional import Conv2D
from keras.utils import np_utils
from keras import backend
backend.set_image_data_format('channels_first')
data ='E:\\KerasRain\\resoucre\\mnist.npz'
#set random seed
seed=7
np.random.seed(seed)
# import MNIST dataset from Keras
(X_train,y_train),(X_validation,y_validation)=mnist.load_data(data)
X_train=X_train.reshape(X_train.shape[0],1,28,28).astype('float32')
X_validation=X_validation.reshape(X_validation.shape[0],1,28,28).astype('float32')
#Normalized to 0-1
X_train=X_train/255
X_validation=X_validation/255
#make one-hot code
y_train=np_utils.to_categorical(y_train)
y_validation=np_utils.to_categorical(y_validation)
#creat model
def create_model():
# initialize model
model=Sequential()
# define input layer (1x28x28)
# define Convolutional layer 32 maps, 5x5
model.add(Conv2D(32,(5,5),input_shape=(1,28,28),activation='relu'))
# define Pooling layer (2x2)
model.add(MaxPooling2D(pool_size=(2,2)))
# define Dropout layer 20%
model.add(Dropout(0.2))
# define Flattem layer
model.add(Flatten())
# define Fully connected layer 128
model.add(Dense(units=128,activation='relu'))
# define output layer 10
model.add(Dense(units=10,activation='softmax'))
# compile model
pile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
return model
model=create_model()
model.fit(X_train,y_train,epochs=10,batch_size=200,verbose=1)
score=model.evaluate(X_validation,y_validation,verbose=0)
print('accuracy: %.2f%%'%(score[1]*100))