mnist是机器学习经典数据集,包含几万张28x28的手写数字灰度图
本例程展示如何通过tensorflow定义神经网络模型学习区分手写数字0-9,并验证模型的准确度
# tf版本2.4import tensorflow as tfimport numpy as npimport os#加载数据集f = np.load(os.path.join(os.path.expanduser('~'), 'Lepi_Data/dataset/mnist.npz'))x_train, y_train = f['x_train'], f['y_train']x_test, y_test = f['x_test'], f['y_test']#定义模型架构model = tf.keras.models.Sequential()model.add(tf.keras.layers.Flatten(input_shape=(28, 28)))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(10, activation=tf.nn.softmax))model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])#打印模型基本参数print(model.summary())#开始训练model.fit(x_train, y_train, epochs=10, batch_size=64)#数据验证,打印在验证集上的准确率val_loss, val_acc = model.evaluate(x_test, y_test)print(val_loss, val_acc)#保存模型,后续可用tensorflow.keras.models.load_model加载model.save('mnist_model.h5')
