本文将为您介绍如何使用 Keras 框架来训练一个简单的 MNIST 手写数字识别模型。MNIST 数据集是机器学习领域中最常用的数据集之一,它包含 60,000 个训练样本和 10,000 个测试样本,每个样本都是一个 28x28 的灰度图像。

快速开始

  1. 安装必要的库: 首先,确保您已经安装了以下库:

    pip install tensorflow numpy
    
  2. 导入数据集: Keras 提供了 MNIST 数据集的加载功能,可以直接导入。

    from tensorflow.keras.datasets import mnist
    (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
    
  3. 预处理数据: 为了让模型更好地学习,需要对图像数据进行预处理,例如归一化。

    train_images = train_images / 255.0
    test_images = test_images / 255.0
    
  4. 构建模型: 使用 Keras 构建一个简单的卷积神经网络模型。

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense, Conv2D, Flatten, MaxPooling2D
    
    model = Sequential([
        Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)),
        MaxPooling2D(pool_size=(2, 2)),
        Flatten(),
        Dense(128, activation='relu'),
        Dense(10, activation='softmax')
    ])
    
  5. 编译模型: 编译模型时,指定优化器、损失函数和评估指标。

    model.compile(optimizer='adam',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])
    
  6. 训练模型: 使用训练数据来训练模型。

    model.fit(train_images, train_labels, epochs=5)
    
  7. 评估模型: 使用测试数据来评估模型的性能。

    test_loss, test_acc = model.evaluate(test_images, test_labels)
    print('Test accuracy:', test_acc)
    
  8. 保存模型: 如果您对模型满意,可以将其保存到文件中。

    model.save('mnist_keras_model.h5')
    

扩展阅读

如果您想深入了解 Keras 和神经网络,可以阅读以下文章:

希望这篇教程能帮助您入门 MNIST Keras。祝您学习愉快!🎉