深度学习进阶文档深度页
卷积神经网络
利用局部连接和权重共享处理图像等网格结构。
学习目标
- 解释局部连接/共享
- 追踪 NCHW
- 构建简单 CNN
为什么需要这个概念
展平大图接全连接层参数巨大且忽略空间邻近结构。
- 视觉模型基础
- 理解卷积、池化和形状
学习前需要掌握
张量内容待补充卷积操作
背景与问题
展平大图接全连接层参数巨大且忽略空间邻近结构。
概念定义
CNN 用可学习卷积核生成特征图,逐层组合边缘、纹理、部件和语义。
直观理解
同一小型检测器在整张图上滑动,寻找相同局部模式。
核心原理
卷积参数量与输入高宽无关;浅层高分辨率、深层高语义。
典型模块 Conv→Norm→Activation,下采样由池化或 stride 卷积完成。
数学表达
核心公式
启用 bias 时每个输出通道多一个偏置。
变量含义
C_in输入通道C_out输出通道K卷积核尺寸
计算步骤
- 164×(3×3×3+1)
代码对应位置
示例 1卷积神经网络 · PyTorch 示例:验证卷积神经网络的输入、计算和输出。
变量解释
| 变量 | 含义 |
|---|---|
C_in | 输入通道 |
C_out | 输出通道 |
K | 卷积核尺寸 |
完整数值示例
3→64 的 3×3 卷积
已知条件
- Cin=3
- Cout=64
- bias=True
- 1
64×(3×3×3+1)
1792 参数
处理前后对比
计算与实现步骤
- 1
输入 NCHW
- 2
卷积提特征
- 3
激活
- 4
下采样
- 5
深层组合
- 6
分类头
代码实现
示例 1
卷积神经网络 · PyTorch 示例
卷积神经网络 · PyTorch 示例
PyTorch
example_01.py用途:验证卷积神经网络的输入、计算和输出。
model=nn.Sequential(nn.Conv2d(1,16,3,padding=1),nn.ReLU(),nn.MaxPool2d(2),nn.Flatten(),nn.Linear(16*14*14,10))
print(model(torch.randn(8,1,28,28)).shape)代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
验证卷积神经网络的输入、计算和输出。
model- 组合预处理和估计器的模型对象。
Step 1 · 1–2 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
model=nn.Sequential(nn.Conv2d(1,16,3,padding=1),nn.ReLU(),nn.MaxPool2d(2),nn.Flatten(),nn.Linear(16*14*14,10))
print(model(torch.randn(8,1,28,28)).shape)预期输出或运行结果
torch.Size([8,10])。
常见错误 · 5 条
- NCHW 顺序错
- 通道不匹配
- Linear 输入算错
- CE 前 Softmax
- 确认样本轴、特征轴以及 X 与 y 的第一维完全对应。
实际应用
- 图像分类
- 频谱/网格数据
常见错误
NCHW 顺序错
通道不匹配
Linear 输入算错
CE 前 Softmax
文档来源
07_CNN卷积神经网络详解原始文档
学习资料/deeplearning/07_CNN卷积神经网络详解.md- §1 CNN
- §2 全连接问题
- §3 形状
- §12 层次特征
- §15–17 PyTorch 实现
常见问题
CNN 参数为何少?
局部连接与跨位置权重共享。
CNN 是否平移不变?
卷积近似等变,池化/汇总提供有限稳健性。
推荐学习资料
书籍A 级
Dive into Deep Learning
把数学、图示、文字与可执行代码结合,系统覆盖深度学习基础和现代模型。
Zhang / Lipton / Li / Smola · D2L.ai
资料笔记
GitHub 仓库A 级
pytorch/examples
提供视觉、文本、强化学习和分布式训练等 PyTorch 参考示例。
PyTorch · GitHub
仓库信息
运行和研究常见 PyTorch 模型示例
主要语言:Python包含数据集或实验需要额外环境资料笔记
技术文章B 级
Feature Visualization
通过优化输入和可视化神经元响应解释深度网络内部学到的特征。
Olah / Mordvintsev / Schubert · Distill