import tensorflow as tf
mnist=tf.keras.datasets.mnist
(x_train,y_train),(x_test,y_test)=mnist.load_data()
xtrain=tf.keras.utils.normalize(x_train,axis=1)
xtest=tf.keras.utils.normalize(x_test,axis=1)
model=tf.keras.models.Sequential()
#model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Flatten(input_shape=(28,28))) #因为输入的是 28x28 的图像(矩阵)
model.add(tf.keras.layers.Dense(128,activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(128,activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(128,activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(128,activation=tf.nn.softmax))
model.compile(optimizer=‘adam’,loss=‘sparse_categorical_crossentropy’,metrics=[‘accuracy’])
model.fit(x_train,y_train,epochs=3)
vac_loss,vac_acc = model.evaluate(x_test, y_test)
print(vac_loss,vac_acc)
import matplotlib.pyplot as plt
plt.imshow(x_train[0])
plt.show
model.save(‘epic_num_reader.model’)
new_model=tf.keras.models.load_model(‘epic_num_reader.model’)
predictions=new_model.predict(x_test)
print(predictions)
import numpy as np
print(np.argmax(predictions[0]))
plt.imshow(x_test[0])
plt.show
手写数字的识别,数据来源mnist,model.add(tf.keras.layers.Flatten(input_shape=(28,28))) #因为输入的是 28x28 的图像(矩阵)
对input_shape的定义很重要,不然在model.save会出现错误