>- **🍨 本文为[🔗365天深度学习训练营](https://mp.weixin.qq.com/s/AtyZUu_j2k_ScNH6e732ow) 中的学习记录博客**
>- **🍦 参考文章地址: [🔗深度学习100例-卷积神经网络(CNN)彩色图片分类 | 第2天](https://mtyjkh.blog.csdn.net/article/details/116978213)**
>- **🍖 作者:[K同学啊](https://mp.weixin.qq.com/s/AtyZUu_j2k_ScNH6e732ow)**
步骤和之前一致,只是数据和网络不同
导入数据
datasets.cifar10.load_data()
这是一个 Keras 的函数,用于下载和加载 CIFAR-10 数据集。CIFAR-10 是一个常用的计算机视觉数据集,包含 60000 张 32x32 像素的彩色图片,共分为 10 个类别。其中,50000 张图片用于训练,10000 张图片用于测试。这个函数会将数据集下载到本地,并按照训练集和测试集的分类返回样本和标签的元组。具体而言,该函数会返回一个长度为 2 的元组,第一个元素是一个包含训练样本和标签的元组 (train_samples, train_labels),第二个元素是一个包含测试样本和标签的元组 (test_samples, test_labels)。
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt
(train_images, train_labels), (test_images, test_labels) = datasets.cifar10.load_data()
构建模型
model = models.Sequential([
layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)), #卷积层1,卷积核3*3
layers.MaxPooling2D((2, 2)), #池化层1,2*2采样
layers.Conv2D(64, (3, 3), activation='relu'), #卷积层2,卷积核3*3
layers.MaxPooling2D((2, 2)), #池化层2,2*2采样
layers.Conv2D(64, (3, 3), activation='relu'), #卷积层3,卷积核3*3
layers.Flatten(), #Flatten层,连接卷积层与全连接层
layers.Dense(64, activation='relu'), #全连接层,特征进一步提取
layers.Dense(10) #输出层,输出预期结果
])
model.summary() # 打印网络结构
模型评估
import matplotlib.pyplot as plt
plt.plot(history.history['accuracy'], label='accuracy')
plt.plot(history.history['val_accuracy'], label = 'val_accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.ylim([0.5, 1])
plt.legend(loc='lower right')
plt.show()
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)