cnn写一个图片分类模型
时间: 2024-02-12 13:05:53 浏览: 71
好的,以下是一个简单的卷积神经网络(CNN)模型,用于图片分类任务:
```python
import tensorflow as tf
# 定义 CNN 模型
def create_model():
model = tf.keras.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')
])
return model
# 编译模型
model = create_model()
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(train_images, train_labels, epochs=5,
validation_data=(test_images, test_labels))
```
在这个模型中,我们使用了三个卷积层和两个全连接层,其中每个卷积层都后接了一个最大池化层,用于压缩特征图的大小。最后一个全连接层输出10个概率值,对应于10个可能的类别,我们使用 softmax 函数将这些概率值转换为分类输出。
在训练模型时,我们使用了 Adam 优化器和交叉熵损失函数,同时计算了模型的精度指标。可以根据实际需要进行调整和优化。
阅读全文