用tensorflow 通过keras框架实现一个类似于LeNet-5的神经网络,来解决mnist上的数字识别问题
时间: 2024-03-11 10:47:12 浏览: 114
基于tensorflow的图像处理实战项目:keras的API编写LeNet5网络来做mnist的分类等
好的,我可以为您提供一段代码示例。请注意,以下代码是在TensorFlow 2.x版本和Keras API下编写的,需要先安装TensorFlow和Keras库。
```python
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# 加载MNIST数据集
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
# 数据预处理
x_train = x_train.reshape(-1, 28, 28, 1) / 255.0
x_test = x_test.reshape(-1, 28, 28, 1) / 255.0
y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)
# 构建模型
model = keras.Sequential([
Conv2D(6, (5, 5), activation='relu', input_shape=(28, 28, 1)),
MaxPooling2D((2, 2)),
Conv2D(16, (5, 5), activation='relu'),
MaxPooling2D((2, 2)),
Flatten(),
Dense(120, activation='relu'),
Dense(84, activation='relu'),
Dense(10, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=5, batch_size=32, validation_data=(x_test, y_test))
# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print('Test accuracy:', test_acc)
```
这段代码实现了一个LeNet-5类似的卷积神经网络,包括两个卷积层和两个全连接层,用于解决MNIST手写数字识别问题。您可以根据自己的需求修改模型结构、超参数等。
阅读全文