keras实现手写书字识别
import tensorflow as tf
from tensorflow import keras
import numpy as np
from matplotlib import pyplot as plt
from keras import layers
from keras import regularizers
%matplotlib inline
import keras.datasets.mnist as mnist
import keras.datasets.mnist as mnist
(train_image,train_lable),(test_image,test_label)=mnist.load_data() %下载数据集
建立模型
model = keras.Sequential()
model.add(layers.Flatten()) # Flatten 把数据集展平成2维(6000,28,28)->(6000,28*28)
model.add(layers.Dense(64,activation='relu')) #Dense层不需要关注第一维度,只需要关注第二维度
model.add(layers.Dense(10,activation='softmax')) #因为要输出0-9 softmax多分类
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['acc'])
model.fit(train_image,train_lable,epochs=50, batch_size=512 )
看一下模型训练的如何
model.evaluate(test_image,test_label)
313/313 [==============================] - 0s 456us/step - loss: 0.3737 - acc: 0.9518
[0.3736969828605652, 0.9517999887466431]
model.evaluate(train_image,train_lable)
array([7, 2, 1, 0, 4, 1, 4, 9, 5, 9], dtype=uint8)
试一下结果
np.argmax(model.predict(test_image[:10]),axis=1)
array([7, 2, 1, 0, 4, 1, 4, 9, 5, 9], dtype=int64)
test_label[0:10]
array([7, 2, 1, 0, 4, 1, 4, 9, 5, 9], dtype=uint8)
准确度挺高,前十个全部正确