手写数字识别是机器学习的经典入门案例,通过 TensorFlow 可以轻松实现这一任务。以下是详细步骤:

1. 环境准备 📦

  • 安装 TensorFlow:pip install tensorflow
  • 导入必要库:
    import tensorflow as tf
    from tensorflow.keras import layers, models
    
  • 加载 MNIST 数据集:
    (train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()
    

2. 数据预处理 🧼

  • 归一化处理:
    train_images = train_images / 255.0
    test_images = test_images / 255.0
    
  • 展平图像(可选):
    train_images = train_images.reshape(-1, 28*28)
    test_images = test_images.reshape(-1, 28*28)
    

3. 构建模型 🏗️

model = models.Sequential([
    layers.Dense(512, activation='relu', input_shape=(28*28,)),
    layers.Dropout(0.2),
    layers.Dense(10, activation='softmax')
])
MNIST_dataset

4. 编译与训练 🚀

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(train_images, train_labels, epochs=5)
CNN_model_structure

5. 评估与预测 📊

test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print(f"测试准确率: {test_acc*100:.2f}%")
Training_process

6. 可视化结果 📝

import matplotlib.pyplot as plt
plt.imshow(test_images[0].reshape(28,28), cmap='gray')
plt.show()
Digit_recognition_result

如需深入了解 TensorFlow 与 Keras 的关系,可参考 TensorFlow Keras 概述教程