CIFAR-10 是一个常用的图像数据集,包含 10 个类别的 60,000 张 32x32 的彩色图像。在这个教程中,我们将使用 TensorFlow 来学习如何构建一个简单的卷积神经网络 (CNN) 来对这些图像进行分类。

数据集预览

首先,让我们导入 CIFAR-10 数据集并可视化一些图像。

import matplotlib.pyplot as plt
from tensorflow.keras.datasets import cifar10

# 加载数据集
(x_train, y_train), (x_test, y_test) = cifar10.load_data()

# 显示图像
plt.imshow(x_train[0])
plt.title('Sample Image')
plt.show()

Sample Image

构建模型

接下来,我们将构建一个简单的 CNN 模型。

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# 构建模型
model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
    MaxPooling2D((2, 2)),
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D((2, 2)),
    Conv2D(64, (3, 3), activation='relu'),
    Flatten(),
    Dense(64, activation='relu'),
    Dense(10, activation='softmax')
])

# 编译模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# 模型摘要
model.summary()

训练模型

现在,我们可以使用训练数据来训练我们的模型。

# 训练模型
model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))

模型评估

最后,我们评估模型在测试集上的性能。

# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print('\nTest accuracy:', test_acc)

更多关于 TensorFlow 和深度学习的资源,请访问本站深度学习教程

# 测试链接
print("[[本站深度学习教程](/learn/deep_learning_tutorials)]")