Keras深度学习:卷积神经网络——手写数字识别

引言:最近在闭关学习中,由于多久没有写博客了,今天给大家带来学习的一些内容,还在学习神经网络的同学,跑一跑下面的代码,给你一些自信吧!Nice 奥里给!

正文:首先该impor的库就不多说了,不会的就pip install something  that you got it

备注:mnist.npz资源姐姐晓的你没有,来躺好了:https://s3.amazonaws.com/img-datasets/mnist.npz 自己VPN哈

读者也可以在下方代码片里面直接下载: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
    model.compile(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))

 

技术群:1090519856

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章