1.1 本章学习目标与重点
学习目标:掌握卷积神经网络的核心原理、经典网络架构,以及在图像分类任务中的实战开发流程。 学习重点:理解卷积层、池化层的工作机制,学会使用 TensorFlow 搭建 CNN 模型并完成训练与评估。
1.2 卷积神经网络核心原理
1.2.1 卷积层:提取图像局部特征
卷积层是 CNN 的核心组件,其作用是通过卷积核对输入图像进行局部特征提取。卷积核本质是一个小型的权重矩阵。它会按照设定的步长在图像上滑动。每滑动一次,卷积核就会与对应区域的像素值做内积运算,输出一个特征值。这个过程可以捕捉图像的边缘、纹理等基础特征。
注意:卷积核的数量决定了输出特征图的通道数,数量越多,提取的特征维度越丰富。
- 定义一个 3×3 大小的卷积核,步长设为 1,填充方式为 SAME
- 对 28×28 单通道的手写数字图像进行卷积操作
- 输出特征图的尺寸保持 28×28,通道数由卷积核数量决定
import tensorflow as tf
from tensorflow.keras.layers import Conv2D
# 定义卷积层
conv_layer = Conv2D(filters=32, kernel_size=(3,3), strides=(1,1), padding="SAME", input_shape=(28,28,1))
# 模拟输入:1 张 28×28 单通道图像
input_image = tf.random.normal(shape=(1,28,28,1))
# 执行卷积运算
output_feature = conv_layer(input_image)
print("输出特征图形状:", output_feature.shape)
1.2.2 池化层:降低特征维度与防止过拟合
池化层的作用是对卷积层输出的特征图进行降采样。它可以在保留关键特征的同时,减少参数数量和计算量。常见的池化方式有两种:最大池化和平均池化。最大池化选取局部区域内的最大值作为输出,能更好保留纹理特征。平均池化选取局部区域的平均值,能保留背景特征。
- 定义 2×2 大小的最大池化层,步长设为 2
- 对卷积层输出的特征图进行池化操作


