#卷积核、步长与池化:感受野、参数共享
📂 所属阶段:第二阶段 — 深度学习视觉基础(CNN 篇)
🔗 相关章节:从全连接到卷积 · 经典 CNN 架构剖析
#1. 卷积核大小
"""
常见卷积核大小:
1×1:通道融合
3×3:最常用,平衡感受野和计算量
5×5:更大的感受野
7×7:很少用,计算量大
"""
import torch
import torch.nn as nn
# 不同大小的卷积核
conv1x1 = nn.Conv2d(3, 64, kernel_size=1)
conv3x3 = nn.Conv2d(3, 64, kernel_size=3, padding=1)
conv5x5 = nn.Conv2d(3, 64, kernel_size=5, padding=2)
x = torch.randn(1, 3, 224, 224)
print(f"1×1 输出: {conv1x1(x).shape}") # (1, 64, 224, 224)
print(f"3×3 输出: {conv3x3(x).shape}") # (1, 64, 224, 224)
print(f"5×5 输出: {conv5x5(x).shape}") # (1, 64, 224, 224)#2. 步长(Stride)与填充(Padding)
"""
步长:卷积核每次移动的像素数
stride=1:每次移动 1 像素
stride=2:每次移动 2 像素(下采样)
填充:在图像边界添加 0
padding=0:无填充
padding=1:添加 1 圈 0
"""
import torch
import torch.nn as nn
x = torch.randn(1, 3, 224, 224)
# stride=1, padding=1 → 输出大小不变
conv1 = nn.Conv2d(3, 64, kernel_size=3, stride=1, padding=1)
print(f"stride=1: {conv1(x).shape}") # (1, 64, 224, 224)
# stride=2, padding=1 → 输出大小减半
conv2 = nn.Conv2d(3, 64, kernel_size=3, stride=2, padding=1)
print(f"stride=2: {conv2(x).shape}") # (1, 64, 112, 112)
# 输出大小公式:
# output_size = (input_size - kernel_size + 2*padding) / stride + 1#3. 池化(Pooling)
"""
池化:下采样操作,减少特征图大小
最大池化(Max Pooling):取最大值
平均池化(Average Pooling):取平均值
"""
import torch
import torch.nn as nn
x = torch.randn(1, 64, 224, 224)
# 最大池化
max_pool = nn.MaxPool2d(kernel_size=2, stride=2)
print(f"Max Pool: {max_pool(x).shape}") # (1, 64, 112, 112)
# 平均池化
avg_pool = nn.AvgPool2d(kernel_size=2, stride=2)
print(f"Avg Pool: {avg_pool(x).shape}") # (1, 64, 112, 112)#4. 感受野(Receptive Field)
"""
感受野:输出特征对应的输入区域大小
计算公式:
RF = kernel_size + (RF_prev - 1) × stride
例子:
Layer 1: 3×3 卷积, stride=1 → RF=3
Layer 2: 3×3 卷积, stride=1 → RF=5
Layer 3: 3×3 卷积, stride=1 → RF=7
如果加入 stride=2 的池化:
Layer 1: 3×3 卷积, stride=1 → RF=3
Layer 2: 2×2 池化, stride=2 → RF=6
Layer 3: 3×3 卷积, stride=1 → RF=10
"""
# 感受野越大,模型看到的上下文越多
# 但计算量也会增加#5. 小结
卷积层三要素:
1. 卷积核大小:3×3 最常用
2. 步长:stride=1 保持大小,stride=2 下采样
3. 池化:减少参数,增加感受野
感受野:
- 越大越好?不一定
- 需要平衡感受野和计算量
- 通常用多个小卷积核替代大卷积核💡 记住:两个 3×3 卷积核的感受野 = 一个 5×5 卷积核,但参数更少。
🔗 扩展阅读

