mnist是机器学习经典数据集,包含几万张28x28的手写数字灰度图
    本例程展示如何通过tensorflow定义神经网络模型学习区分手写数字0-9,并验证模型的准确度

    1. # tf版本2.4
    2. import tensorflow as tf
    3. import numpy as np
    4. import os
    5. #加载数据集
    6. f = np.load(os.path.join(os.path.expanduser(
    7. '~'), 'Lepi_Data/dataset/mnist.npz'))
    8. x_train, y_train = f['x_train'], f['y_train']
    9. x_test, y_test = f['x_test'], f['y_test']
    10. #定义模型架构
    11. model = tf.keras.models.Sequential()
    12. model.add(tf.keras.layers.Flatten(input_shape=(28, 28)))
    13. model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
    14. model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
    15. model.add(tf.keras.layers.Dense(10, activation=tf.nn.softmax))
    16. model.compile(optimizer='adam',
    17. loss='sparse_categorical_crossentropy',
    18. metrics=['accuracy'])
    19. #打印模型基本参数
    20. print(model.summary())
    21. #开始训练
    22. model.fit(x_train, y_train, epochs=10, batch_size=64)
    23. #数据验证,打印在验证集上的准确率
    24. val_loss, val_acc = model.evaluate(x_test, y_test)
    25. print(val_loss, val_acc)
    26. #保存模型,后续可用tensorflow.keras.models.load_model加载
    27. model.save('mnist_model.h5')