这两幅图展示了两种不同的残差网络模块结构,分别是基本的残差块和瓶颈(Bottleneck)残差块。以下是它们的主要区别:
基本残差块(左图)
- 卷积层:包含两个连续的3x3卷积层,每个卷积层后面跟着一个ReLU激活函数。
- 维度:输入和输出的维度相同(64-d),即输入和输出的特征图通道数一致。
- 计算复杂度:由于直接使用3x3卷积层,计算量相对较高。
- 用途:适用于较浅的网络结构,如ResNet-18。
瓶颈残差块(右图)
- 卷积层:包含三个卷积层,其中第一个和第三个卷积层是1x1卷积,用于降维和升维,中间的卷积层是3x3卷积,用于特征提取。
- 维度:输入和输出的维度不同(256-d 输入,64-d 中间特征图,256-d 输出),中间特征图的维度较低,从而减少了计算量。
- 计算复杂度:通过1x1卷积层减少中间层的通道数,显著降低了计算量。
- 用途:适用于更深的网络结构,如ResNet-50、ResNet-101等,能够更有效地处理更复杂的特征。
总结
- 基本残差块:结构简单,计算量相对较高,适用于较浅的网络。
- 瓶颈残差块:通过1x1卷积层优化计算效率,适用于更深的网络结构。
瓶颈残差块通过减少中间层的通道数,降低了计算复杂度,同时保持了网络的表示能力,是构建深层网络的有效方法。