手写数字识别python
时间: 2023-07-25 20:16:20 浏览: 44
手写数字识别是一个常见的机器学习问题。在Python中,我们可以使用许多不同的机器学习框架来实现手写数字识别。
其中最常用的框架之一是TensorFlow。TensorFlow拥有强大的深度学习功能,并且有许多已经训练好的模型可以用于手写数字识别。
另一个流行的框架是Keras。Keras是一个高层次的神经网络API,它可以在TensorFlow,Theano和CNTK之上提供一个更简单的界面。
以下是一个使用TensorFlow和Keras实现手写数字识别的示例代码:
```
import tensorflow as tf
from tensorflow import keras
import numpy as np
# 加载MNIST数据集
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
# 数据预处理
x_train = x_train.astype('float32') / 255.
x_test = x_test.astype('float32') / 255.
x_train = np.expand_dims(x_train, -1)
x_test = np.expand_dims(x_test, -1)
# 构建模型
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(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print('Test accuracy:', test_acc)
```
这段代码首先加载MNIST数据集,然后对数据进行预处理。接下来,使用Keras的Sequential API构建一个简单的卷积神经网络模型,并编译模型。最后,使用训练数据拟合模型,并使用测试数据评估模型的性能。