生成代码 用卷积神经网络预测图片类别
时间: 2023-11-12 13:05:12 浏览: 90
以下是一个简单的示例,展示如何使用卷积神经网络(CNN)来预测图片类别:
```python
import tensorflow as tf
from tensorflow.keras import layers
# 加载数据集
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data()
# 数据预处理
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255
y_train = tf.keras.utils.to_categorical(y_train, num_classes=10)
y_test = tf.keras.utils.to_categorical(y_test, num_classes=10)
# 构建模型
model = tf.keras.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
# 编译模型
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
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('Test accuracy:', test_acc)
```
这段代码使用了 CIFAR-10 数据集,包含了 10 个不同的图片类别。模型包含了三个卷积层和两个全连接层,最终的输出层使用 softmax 激活函数来输出每个类别的概率分布。模型在训练集上进行了训练,并在测试集上进行了评估,输出了最终的测试准确率。
阅读全文