cnn卷积神经网络python
时间: 2023-07-07 21:36:33 浏览: 156
CNN(Convolutional Neural Network,卷积神经网络)是一种前馈神经网络,常用于图像和视频识别、分类和处理任务。Python中有多种深度学习框架可以用来构建和训练CNN模型,其中比较流行的包括TensorFlow、Keras、PyTorch等。
以下是一个用Python编写并训练CNN模型的示例:
```python
import tensorflow as tf
from tensorflow.keras import layers
# 加载MNIST手写数字数据集
mnist = tf.keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
# 对图像进行预处理,将像素值缩放到0到1之间
train_images = train_images / 255.0
test_images = test_images / 255.0
# 构建CNN模型
model = tf.keras.Sequential([
layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(64, (3, 3), activation='relu'),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(64, (3, 3), activation='relu'),
layers.Flatten(),
layers.Dense(64, activation='relu'),
layers.Dense(10, activation='softmax')
])
# 编译模型并训练
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5)
# 在测试集上评估模型
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
```
这个示例中,我们使用TensorFlow内置的MNIST数据集加载手写数字图像,预处理数据,构建了一个包含三个卷积层和两个全连接层的CNN模型,并使用Adam优化器和交叉熵损失函数进行训练。最后在测试集上评估模型的性能。
阅读全文