MNIST 数据集是机器学习领域中最常用的数据集之一,它包含了大量的手写数字图片。本教程将带你了解如何使用 MNIST 数据集进行图像识别。
1. 数据集介绍
MNIST 数据集包含 60,000 个训练样本和 10,000 个测试样本,每个样本都是一个 28x28 的灰度图像,表示一个手写数字。
2. 数据预处理
在使用 MNIST 数据集之前,我们需要对其进行预处理。以下是一些常见的预处理步骤:
- 归一化:将图像像素值归一化到 [0, 1] 范围内。
- 缩放:将图像缩放到统一的尺寸,例如 28x28。
3. 模型构建
以下是一个简单的卷积神经网络(CNN)模型,用于 MNIST 图像识别:
import tensorflow as tf
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
4. 训练模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)
5. 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print('\nTest accuracy:', test_acc)
6. 总结
通过本教程,你学习了如何使用 MNIST 数据集进行图像识别。你可以通过调整模型结构和参数来提高模型的性能。
MNIST 数据集示例