用pythony写出手写数字识别的代码
时间: 2024-05-01 14:17:51 浏览: 82
好的,下面是一个简单的手写数字识别代码的示例,使用Python和Keras框架:
首先,我们需要导入所需的库:
```python
import numpy as np
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.utils import np_utils
from keras.datasets import mnist
```
接着,我们可以加载MNIST数据集,该数据集包含60,000张28x28像素的手写数字图像和相应的标签(0到9之间的整数):
```python
(X_train, y_train), (X_test, y_test) = mnist.load_data()
```
我们需要对图像进行预处理,将它们转换为模型可以处理的格式(1维数组),并将像素值归一化为0到1之间的浮点数。同时,我们将标签进行one-hot编码:
```python
# 将图像转换为1维数组
X_train = X_train.reshape(60000, 784)
X_test = X_test.reshape(10000, 784)
# 将像素值归一化为0到1
X_train = X_train.astype('float32') / 255
X_test = X_test.astype('float32') / 255
# 将标签进行one-hot编码
Y_train = np_utils.to_categorical(y_train, 10)
Y_test = np_utils.to_categorical(y_test, 10)
```
接着,我们可以定义一个简单的神经网络模型,包含3个全连接层和2个激活函数层(使用ReLU激活函数和Softmax激活函数)。最后,我们可以编译模型并训练它:
```python
# 定义模型
model = Sequential()
model.add(Dense(512, input_shape=(784,)))
model.add(Activation('relu'))
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dense(10))
model.add(Activation('softmax'))
# 编译模型
model.compile(loss='categorical_crossentropy', metrics=['accuracy'], optimizer='adam')
# 训练模型
model.fit(X_train, Y_train, batch_size=128, epochs=10, validation_data=(X_test, Y_test))
```
训练完成后,我们可以使用测试集评估模型的性能:
```python
score = model.evaluate(X_test, Y_test, verbose=0)
print('Test accuracy:', score[1])
```
这就是一个简单的手写数字识别代码示例,希望能对您有所帮助!
阅读全文