对MNIST手写数字数据集进行训练
时间: 2025-03-26 13:23:02 浏览: 24
### 使用MNIST手写数字数据集进行机器学习模型训练
#### 准备工作
为了使用MNIST手写数字数据集进行机器学习模型训练,首先需要加载并预处理数据。MNIST数据集是一个公开的公共数据集,任何人都可以免费获取它[^1]。
```python
from tensorflow.keras.datasets import mnist
import numpy as np
# 加载MNIST数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 归一化像素值至0-1之间
x_train, x_test = x_train / 255.0, x_test / 255.0
```
#### 构建模型
构建一个简单的神经网络来对这些图像进行分类。这个过程涉及定义从输入到输出的计算过程(即`inference()`函数),以及用于衡量模型拟合程度的损失函数(即`loss()`函数)。这两个组件共同构成了机器学习的核心要素之一——“模型”。
```python
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Flatten, Dense
model = Sequential([
Flatten(input_shape=(28, 28)), # 将二维数组展平成一维向量
Dense(128, activation='relu'), # 添加全连接层
Dense(10, activation='softmax') # 输出层采用Softmax激活函数
])
```
#### 编译与训练模型
编译阶段指定了优化器、损失函数和评价指标;随后通过调用`.fit()`方法来进行实际的训练操作,在此期间会不断调整权重以最小化指定的损失函数。
```python
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
history = model.fit(x_train, y_train, epochs=5)
```
#### 测试模型性能
最后一步是对测试集上的表现进行评估,这有助于了解所建立模型的真实泛化能力。
```python
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f'\nTest accuracy: {test_acc}')
```
以上代码展示了如何基于TensorFlow/Keras库快速搭建起一套完整的流程,从而能够有效地利用MNIST数据集开展实验研究,并推动图像识别领域内技术进步[^2]。
阅读全文
相关推荐















