手写汉字识别python代码
时间: 2024-03-15 21:41:02 浏览: 140
当涉及手写汉字识别的Python代码时,常用的方法是使用深度学习模型。以下是一个简单的示例代码,使用卷积神经网络(CNN)进行手写汉字识别:
```python
import numpy as np
import tensorflow as tf
from tensorflow.keras import layers
# 加载数据集
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
# 数据预处理
x_train = x_train.reshape(-1, 28, 28, 1).astype('float32') / 255.0
x_test = x_test.reshape(-1, 28, 28, 1).astype('float32') / 255.0
y_train = tf.keras.utils.to_categorical(y_train)
y_test = tf.keras.utils.to_categorical(y_test)
# 构建模型
model = tf.keras.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
# 编译模型
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_test, y_test))
# 使用模型进行预测
predictions = model.predict(x_test)
# 打印预测结果
for i in range(10):
print("预测结果:", np.argmax(predictions[i]))
print("真实标签:", np.argmax(y_test[i]))
```
这段代码使用了MNIST数据集作为示例,你可以将其替换为手写汉字数据集。在训练模型之前,你需要准备好手写汉字的图像数据集,并进行相应的预处理。训练完成后,可以使用模型进行预测,并打印出预测结果和真实标签。
阅读全文