案例描述
学习如何搭建CNN卷积神经网络,训练cifar-10数据,识别图片中的内容。
案例分析
cifar-10是由Hinton的学生Alex Krizhevsky和Ilya Sutskever整理的一个用于识别普适物体的小型数据集。一共包含 10个类别的 RGB 彩色图 片:飞机( airplane )、汽车( automobile )、鸟类( bird )、猫( cat )、鹿( deer )、狗( dog )、蛙类( frog )、马( horse )、船( ship )和卡车( truck )。图片由32×32彩色图像组成,每个类有6000个图像。cifar-10数据集中共有50000个训练图像和10000个测试图像。
案例实施
**1.**加载数据
from tensorflow.keras import datasets, layers, models
(train_images, train_labels), (test_images, test_labels) = datasets.cifar10.load_data()
**2.**搭建卷积神经网络
Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化。Keras同样提供了序列化方法,可以方便的帮助搭建神经网络。
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
**3.**可视化训练过程
为了方便查看训练过程中准确率的变化,可以借助matplotlib来可视化训练过程。