1. ResNet-18网络架构解析
ResNet-18作为深度学习领域的里程碑式模型,其核心价值在于解决了深度神经网络训练中的梯度消失问题。这个18层的卷积神经网络(输入3通道224×224图像,输出1000类分类结果)通过残差连接(Residual Connection)实现了深层网络的有效训练。
1.1 残差块设计原理
残差块是ResNet的核心创新单元,其数学表达为:
code复制输出 = F(x) + x
其中F(x)代表常规的卷积变换,x是原始输入。这种设计让网络只需学习残差映射F(x)=H(x)-x,而非完整的H(x),大幅降低了深层网络的优化难度。
具体实现包含两个关键设计:
- 恒等映射路径:当输入输出维度相同时,直接建立x到输出的短路连接
- 投影捷径:当维度变化时(如通道数增加或特征图缩小),通过1×1卷积调整x的维度
python复制class Residual_block(nn.Module):
def __init__(self, input_channels, out_channels, strides=1):
super().__init__()
# 主路径:两个3×3卷积
self.conv1 = nn.Conv2d(input_channels, out_channels,
kernel_size=3, padding=1, stride=strides)
self.conv2 = nn.Conv2d(out_channels, out_channels,
kernel_size=3, padding=1, stride=1)
# 捷径路径
if input_channels != out_channels:
self.conv3 = nn.Conv2d(input_channels, out_channels,
kernel_size=1, stride
