前期准备工作参考:https://www.cnblogs.com/ratels/p/11144881.html
基于CNN算法利用Keras框架编写代码实现对Minst数据分类识别:
from keras.datasets import mnist from keras.utils import to_categorical train_X, train_y = mnist.load_data()[0] train_X = train_X.reshape(-1, 28, 28, 1) train_X = train_X.astype('float32') train_X /= 255 train_y = to_categorical(train_y, 10) from keras.models import Sequential from keras.layers import Conv2D, MaxPool2D, Flatten, Dropout, Dense from keras.losses import categorical_crossentropy from keras.optimizers import Adadelta model = Sequential() model.add(Conv2D(32, (5,5), activation='relu', input_shape=[28, 28, 1])) model.add(Conv2D(64, (5,5), activation='relu')) model.add(MaxPool2D(pool_size=(2,2))) model.add(Flatten()) model.add(Dropout(0.5)) model.add(Dense(128, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(10, activation='softmax')) model.compile(loss=categorical_crossentropy, optimizer=Adadelta(), metrics=['accuracy']) batch_size = 64 epochs = 5 model.fit(train_X, train_y, batch_size=batch_size, epochs=epochs) test_X, test_y = mnist.load_data()[1] test_X = test_X.reshape(-1, 28, 28, 1) test_X = test_X.astype('float32') test_X /= 255 test_y = to_categorical(test_y, 10) loss, accuracy = model.evaluate(test_X, test_y, verbose=1) print('loss:%.4f accuracy:%.4f' %(loss, accuracy))
正在训练:
训练完成,返回信息:
参考: