🎨 一、卷积通道数(Channels / Feature Maps)是什么意思?
卷积通道数决定图像或特征表示中包含多少个独立的信息"层"。
🖼 以图片为例:
| 图像类型 | 通道数 | 含义 |
|---|---|---|
| 灰度图(MNIST) | 1 | 每个像素只有亮度 |
| 彩色图(RGB) | 3 | R、G、B 三个颜色通道 |
| CNN 中间层 | 32/64/128/... | 不同的特征,比如边缘、角点、纹理 |
📦 举个例子
一张 MNIST 图片 shape 是:
[1, 28, 28] # 1 通道,宽28,高28
经过卷积后可能变成:
[64, 14, 14] # 64个通道,每个通道是14x14
📌 意思是模型学习到 64 种不同的特征图
比如第1个通道表示"竖线特征",第2个表示"圆形特征",第3个表示"尖角特征"......
🔧 二、卷积层(Convolution Layer)
卷积层的作用:
从图像中提取特征,比如边缘、形状、纹理
卷积层的典型结构
nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding)
参数解释:
| 参数 | 含义 |
|---|---|
in_channels |
输入的 feature map 数量 |
out_channels |
输出的 feature map 数量(卷积通道数) |
kernel_size |
卷积核大小(比如 3×3) |
stride |
步长(影响下采样) |
padding |
填充(保持尺寸) |
🎯 Example
nn.Conv2d(1, 64, 4, 2, 1)
意思是:
-
输入通道 1(MNIST)
-
输出通道 64
-
卷积后输出特征图为:
[64, 14, 14]
🧼 三、Batch Normalization(BatchNorm)
BatchNorm 的作用:
稳定训练,加快收敛,让网络更容易训练。
其做的事情:
-
让每一层输出变成 均值 0、方差 1
-
让不同 batch 的分布更接近,减轻梯度爆炸/消失
-
相当于让神经网络"心态更平稳" 😌

🎤 小总结(超级关键)
一句话记住它们:
卷积层负责"特征提取",通道数表示特征种类数量,BatchNorm 负责稳定训练和加速收敛。
图形理解:
输入图像 → [Conv:提取特征] → [BatchNorm:稳定] → [Activation:增加非线性] → 下一层
为什么 BatchNorm 后面通常接 ReLU?
这是深度学习里一个非常经典的组合:Conv → BatchNorm → ReLU。
🧠 直觉解释
✔ BatchNorm 的作用
BatchNorm 会把某一层输出做标准化,使其分布更平稳:

也就是说:
-
把输出 拉到均值 0、方差 1 的分布附近
-
让网络训练更稳定
-
避免梯度爆炸/消失
-
允许更大的学习率
-
加速收敛
经过 BN 后的数据有正有负(中心在 0 附近)。
✔ ReLU 的作用

-
把 负值截断为 0
-
只保留 正激活值
-
引入 非线性,让网络能表示更复杂的函数
-
让梯度传递更稳定
| 步骤 | 数据状态 |
|---|---|
| Conv | 输出无约束,有可能量级很大或分布很偏 |
| BatchNorm | 把分布整理到均值 0 附近、稳定训练 |
| ReLU | 用非线性截断负值,让特征更有表达力 |