卷积神经网络 CNN 超详细学习笔记
一、图像基础入门
1. 图像像素原理
- 图像由无数像素点组成
- 像素取值范围:0 ~ 255
- 像素越靠近 0 越黑,越靠近 255 越白
2. 彩色图像结构
- 彩色图由 R、G、B 三通道构成
- 图像标准格式:H(高)× W(宽)× C(通道)
3. Python 图像操作
plt.imread()读取图片plt.imshow()展示图片- 可快速生成全黑、全白测试画布
二、卷积神经网络 CNN 整体介绍
1. 什么是CNN
卷积神经网络(CNN)是专门处理图像的神经网络,靠卷积结构自动提取图像特征。
2. CNN 四大核心层
- 卷积层:提取边缘、纹理、局部特征
- 激活层:引入非线性,常用 ReLU
- 池化层:降维、缩小尺寸、减少计算量
- 全连接层:整合特征,输出分类结果
三、卷积层详解
1. 卷积运算原理
用卷积核(过滤器)在图像上滑动,和局部像素做点积求和,生成新的特征图。
2 两个关键参数
Padding 填充
- 在图像边缘补 0 像素
- 作用:防止边缘特征丢失,可保持输出尺寸不变
Stride 步长
- 卷积核每次滑动的像素距离
- 步长越大,特征图尺寸越小
3 多通道 / 多卷积核
- 彩色图 3通道 匹配 3通道卷积核
- 一个卷积核输出一张特征图
- 多个卷积核输出多张特征图
4 特征图尺寸公式
\[N = \frac{W - F + 2P}{S} + 1
\]
- W:输入尺寸
- F:卷积核大小
- P:填充
- S:步长
5 PyTorch 卷积API
nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding)
- in_channels:输入通道数
- out_channels:卷积核个数/输出通道
- kernel_size:卷积核大小(常用3×3)
四、池化层详解
1. 池化作用
- 特征图下采样降维
- 减少参数量、降低计算开销
- 保留主要特征,弱化噪声
2 两种池化方式
- 最大池化:取区域最大值,保留边缘纹理,最常用
- 平均池化:取区域平均值,特征更平滑
3 多通道池化特点
池化对每个通道单独计算,输出通道数和输入保持一致。
4 PyTorch 池化API
# 最大池化
nn.MaxPool2d(kernel_size, stride, padding)
# 平均池化
nn.AvgPool2d(kernel_size, stride, padding)
五、CIFAR10 图像分类实战
1 数据集介绍
- 训练集:50000 张
- 测试集:10000 张
- 图片大小:32×32×3
- 共 10 个分类:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船、卡车
2 标准CNN网络结构
- 卷积层 + ReLU + 最大池化
- 再一层卷积 + ReLU + 最大池化
- 三层全连接层,最后输出10分类
3 完整开发流程
- 加载 CIFAR10 数据集
- 搭建 CNN 网络模型
- 选择:交叉熵损失 + Adam 优化器
- 循环训练、更新参数
- 保存模型、测试集评估准确率
4 实验结果
- 基础网络测试准确率约 57%
5 模型优化方向
- 增加卷积核数量
- 加深网络层数
- 调整学习率、更换优化器
- 增加正则化、数据增强等
六、学习总结
- 图像由 0~255 像素、RGB 三通道组成;
- CNN 核心:卷积提取特征 + 池化降维 + 全连接分类;
- 卷积靠 Padding 保边缘、Stride 控尺寸,套公式可计算特征图大小;
- 最大池化适合图像任务,平均池化适合平滑场景;
- 掌握 CIFAR10 实战,就具备基础CNN图像分类开发能力。

浙公网安备 33010602011771号