手写数字识别,使用神经网络的多层感知机实现的Python代码
时间: 2024-11-15 07:25:30 浏览: 77
手写数字识别通常涉及到图像处理和深度学习,特别是使用多层感知机(Multilayer Perceptron,MLP)。在Python中,我们可以借助像Keras或TensorFlow这样的库来构建这样一个模型。以下是一个简化版的示例,使用MNIST数据集:
```python
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Flatten
# 加载MNIST数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 数据预处理
x_train = x_train.reshape(-1, 784) / 255.0
x_test = x_test.reshape(-1, 784) / 255.0
y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)
# 创建MLP模型
model = Sequential()
model.add(Flatten(input_shape=(28, 28))) # 展平输入图片
model.add(Dense(128, activation='relu')) # 隐藏层,ReLU激活函数
model.add(Dense(64, activation='relu'))
model.add(Dense(10, activation='softmax')) # 输出层,Softmax用于多分类
# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=10, validation_split=0.2)
# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f'Test accuracy: {test_acc}')
阅读全文