给出一份完整的卷积神经网络示例代码
时间: 2024-08-31 10:01:13 浏览: 97
当然,我可以为你提供一个简单的Python TensorFlow卷积神经网络(Convolutional Neural Network,CNN)的完整示例。首先,你需要安装TensorFlow库,如果还没有安装,可以使用pip install tensorflow命令。
```python
import tensorflow as tf
from tensorflow.keras import layers
# 数据预处理部分,这里假设我们有一个形状为(28, 28, 1)的MNIST数据集
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
x_train = x_train.reshape(-1, 28, 28, 1).astype('float32') / 255
x_test = x_test.reshape(-1, 28, 28, 1).astype('float32') / 255
y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)
# 定义模型
model = tf.keras.Sequential([
# 卷积层,32个过滤器,大小3x3,步长1,激活函数ReLU
layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
# 池化层,大小为2x2,步长为2
layers.MaxPooling2D((2, 2)),
# 再添加另一个卷积层,64个过滤器,大小3x3,ReLU激活
layers.Conv2D(64, (3, 3), activation='relu'),
# 最后一个池化层,然后扁平化输入到全连接层
layers.Flatten(),
# 全连接层,128个节点,ReLU激活
layers.Dense(128, activation='relu'),
# 输出层,10个节点,对应10个类别,softmax激活用于分类
layers.Dense(10, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
history = model.fit(x_train, y_train,
epochs=10,
validation_data=(x_test, y_test))
# 评估模型性能
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f"Test accuracy: {test_acc}")
```
阅读全文