python 手写数字识别
时间: 2023-11-13 22:57:35 浏览: 107
要实现手写数字识别,可以使用深度学习中的卷积神经网络(Convolutional Neural Network,CNN)模型。具体步骤如下:
1. 准备数据集:可以使用 MNIST 数据集,其中包含了 0 到 9 的手写数字图片,每张图片大小为 28x28 像素。
2. 数据预处理:将图片转换为灰度图像,并将像素值归一化到 [0, 1] 的范围内。
3. 构建 CNN 模型:可以使用 Keras 框架来构建模型。一个简单的 CNN 模型包含了卷积层、池化层、全连接层等组件。
4. 训练模型:使用训练集对模型进行训练,并使用验证集来调整模型的超参数。
5. 测试模型:使用测试集来评估模型的性能。
下面是一个简单的 Python 代码示例,用于实现手写数字识别:
```python
import tensorflow as tf
from tensorflow import keras
# 加载 MNIST 数据集
mnist = keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
# 数据预处理
train_images = train_images.reshape((60000, 28, 28, 1))
train_images = train_images / 255.0
test_images = test_images.reshape((10000, 28, 28, 1))
test_images = test_images / 255.0
# 构建 CNN 模型
model = keras.Sequential([
keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
keras.layers.MaxPooling2D((2, 2)),
keras.layers.Flatten(),
keras.layers.Dense(10, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(train_images, train_labels, epochs=5, validation_data=(test_images, test_labels))
# 测试模型
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
```
阅读全文