cnn实现mnist数据集识别代码
时间: 2023-11-11 13:07:54 浏览: 81
好的,下面是一个使用 TensorFlow 实现的 CNN 模型来识别 MNIST 数据集的代码示例:
```python
import tensorflow as tf
# 导入 MNIST 数据集
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
# 输入图像为 28x28 的灰度图像
input_shape = (28, 28, 1)
x_train = x_train.reshape(x_train.shape[0], 28, 28, 1)
x_test = x_test.reshape(x_test.shape[0], 28, 28, 1)
# 将像素值缩放到 0 到 1 之间
x_train, x_test = x_train / 255.0, x_test / 255.0
# 建立模型
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Conv2D(64, kernel_size=(3, 3), activation='relu'),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(10, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=5)
# 评估模型
model.evaluate(x_test, y_test, verbose=2)
```
这段代码建立了一个包含两个卷积层和两个最大池化层的 CNN 模型,然后使用 Adam 优化器和 softmax 回归来编译模型,并使用训练数据训练模型 5 个 epoch。最后,使用测试
阅读全文