简单卷积神经网络实现
时间: 2024-02-22 21:52:26 浏览: 20
以下是一个简单的卷积神经网络的实现示例:
```python
import tensorflow as tf
# 定义卷积神经网络模型
def simple_cnn_model():
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.Flatten(),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
return model
# 加载MNIST数据集
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = 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
# 构建模型
model = simple_cnn_model()
# 编译模型
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=5)
# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print('Test accuracy:', test_acc)
```
这个简单的卷积神经网络模型包含了一个卷积层、一个池化层、一个全连接层和一个输出层。它使用了ReLU作为激活函数,并使用了Adam优化器进行模型训练。模型的输入是28x28的灰度图像,输出是10个类别的概率分布。