使用卷积神经网络(CNN)对手写数字进行分类的项目代码
时间: 2023-11-16 15:07:56 浏览: 47
以下是使用卷积神经网络(CNN)对手写数字进行分类的Python代码示例:
首先,需要导入必要的库和数据集:
```python
import tensorflow as tf
from tensorflow.keras.datasets import mnist
# 加载MNIST数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 数据预处理
x_train = x_train.reshape(x_train.shape[0], 28, 28, 1)
x_test = x_test.reshape(x_test.shape[0], 28, 28, 1)
x_train, x_test = x_train / 255.0, x_test / 255.0
```
接着,构建CNN模型:
```python
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
tf.keras.layers.MaxPooling2D((2, 2)),
tf.keras.layers.Conv2D(64, (3, 3), activation='relu'),
tf.keras.layers.MaxPooling2D((2, 2)),
tf.keras.layers.Conv2D(64, (3, 3), activation='relu'),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
```
然后,编译模型并进行训练:
```python
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
```
最后,使用测试集进行模型评估:
```python
model.evaluate(x_test, y_test, verbose=2)
```
这就是一个简单的使用CNN对手写数字进行分类的项目代码示例。当然,这只是一个基础的示例,实际项目中还需要进行模型调参、数据增强等优化。