深度学习进阶文档深度页
卷积操作
卷积核与局部区域逐元素相乘求和,在空间位置生成特征图。
学习目标
- 手算局部卷积
- 计算输出尺寸
- 解释多通道
为什么需要这个概念
卷积是 CNN 的核心局部算子,stride、padding、dilation 控制采样。
- 计算 CNN 数值与尺寸
- 理解多通道权重
学习前需要掌握
矩阵与张量内容待补充
背景与问题
卷积是 CNN 的核心局部算子,stride、padding、dilation 控制采样。
概念定义
PyTorch Conv2d 实际常做互相关,但深度学习领域仍称卷积。
直观理解
把一张小权重模板盖在图像局部,计算匹配响应并滑动。
核心原理
每个输出通道拥有覆盖全部输入通道的一组核;同一核跨位置共享。
dilation 扩大有效核,stride 下采样,padding 控制边界。
数学表达
核心公式
H 输入高,P padding,D dilation,K kernel,S stride。
变量含义
K核大小S步幅P填充D空洞率
计算步骤
- 1(32+2-2-1)/1+1
代码对应位置
示例 1卷积操作 · PyTorch 示例:验证卷积操作的输入、计算和输出。
变量解释
| 变量 | 含义 |
|---|---|
K | 核大小 |
S | 步幅 |
P | 填充 |
D | 空洞率 |
完整数值示例
保持尺寸卷积
已知条件
- H=32,K=3,S=1,P=1,D=1
- 1
(32+2-2-1)/1+1
Hout=32
处理前后对比
计算与实现步骤
- 1
取局部窗口
- 2
逐元素乘
- 3
跨通道求和
- 4
加偏置
- 5
移动窗口
代码实现
示例 1
卷积操作 · PyTorch 示例
卷积操作 · PyTorch 示例
PyTorch
example_01.py用途:验证卷积操作的输入、计算和输出。
conv=nn.Conv2d(3,16,3,stride=1,padding=1)
x=torch.randn(4,3,32,32)
print(conv(x).shape)代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
验证卷积操作的输入、计算和输出。
Step 1 · 1–3 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
conv=nn.Conv2d(3,16,3,stride=1,padding=1)
x=torch.randn(4,3,32,32)
print(conv(x).shape)预期输出或运行结果
torch.Size([4,16,32,32])。
常见错误 · 4 条
- 把 NHWC 当 NCHW
- 公式忘 dilation
- 核通道理解成二维
- 确认样本轴、特征轴以及 X 与 y 的第一维完全对应。
实际应用
- 边缘/纹理检测
- 特征提取
常见错误
把 NHWC 当 NCHW
公式忘 dilation
核通道理解成二维
文档来源
07_CNN卷积神经网络详解原始文档
学习资料/deeplearning/07_CNN卷积神经网络详解.md- §4 卷积核
- §6 多通道
- §7 超参数
- §8 输出尺寸
常见问题
卷积核是否人工固定?
CNN 中通常由反向传播学习。
参数量依赖图像尺寸吗?
不依赖高宽,因为权重共享。
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。