卷积神经网络简单实现案例
时间: 2023-10-22 10:13:22 浏览: 38
以下是一个简单的卷积神经网络实现案例:
```python
import numpy as np
import tensorflow as tf
from tensorflow.keras.datasets import mnist
from tensorflow.keras.layers import Conv2D, Flatten, Dense
from tensorflow.keras.models import Sequential
# 加载 MNIST 数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 处理输入数据
x_train = np.expand_dims(x_train, axis=-1)
x_test = np.expand_dims(x_test, axis=-1)
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255
# 处理标签数据
y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)
# 构建模型
model = Sequential([
Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)),
Flatten(),
Dense(10, activation='softmax'),
])
# 编译模型
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print('Test accuracy:', test_acc)
```
在这个案例中,我们使用了 TensorFlow 和 Keras 库来实现一个简单的卷积神经网络模型来对 MNIST 数据集进行分类。我们在模型中使用了一个卷积层、一个扁平层和一个全连接层。我们使用了 Adam 优化器和交叉熵损失函数来编译模型,并使用训练数据对其进行训练。最终,我们评估了模型在测试数据上的准确率。