Keras实现mnist

 1 import tensorflow as tf
 2 import numpy as np
 3 from tensorflow.keras.utils import to_categorical
 4 
 5 # 导入数据
 6 mnist = np.load('mnist.npz')
 7 x_train, y_train = mnist['x_train'], mnist['y_train']
 8 x_test, y_test = mnist['x_test'], mnist['y_test']
 9 # 归一化处理
10 x_train = x_train.reshape(x_train.shape[0], 28, 28, 1)
11 x_train = x_train / 255
12 x_test = x_test.reshape(x_test.shape[0], 28, 28, 1)
13 x_test = x_test / 255
14 # 转为独热码
15 y_train = to_categorical(y_train, 10)
16 y_test = to_categorical(y_test, 10)
17 # 模型
18 model = tf.keras.models.Sequential([
19     tf.keras.layers.Conv2D(6, (5, 5), activation='relu', input_shape=(28, 28, 1)),
20     tf.keras.layers.MaxPool2D((2, 2)),
21     tf.keras.layers.Conv2D(16, (5, 5), activation='relu'),
22     tf.keras.layers.MaxPool2D((2, 2)),
23     tf.keras.layers.Flatten(),
24     tf.keras.layers.Dense(120, activation='relu'),
25     tf.keras.layers.Dense(84, activation='relu'),
26     tf.keras.layers.Dense(10, activation='softmax')
27 ])
28 model.compile(
29     optimizer=tf.keras.optimizers.Adam(),
30     loss=tf.keras.losses.CategoricalCrossentropy(from_logits=False),
31     metrics=['accuracy']
32 )
33 # 训练
34 model.fit(x_train, y_train, batch_size=500, epochs=5, validation_data=(x_test, y_test), validation_freq=1, shuffle=True)
35 model.summary()
36 # 保存模型
37 # model.save('leNet-5_mnist_model.h5')

猜你喜欢

转载自www.cnblogs.com/sqdtss/p/12685090.html