ResNet有多种不同的类型和变体。以下是一些主要的ResNet类型:
-
基本的ResNet变体:
- ResNet-18:具有18个卷积层的网络,分为4个阶段。
- ResNet-34:具有34个卷积层的网络,同样分为4个阶段。
- ResNet-50:具有50个卷积层的网络,是ResNet系列中较深的版本之一。
- ResNet-101:具有101个卷积层的网络。
- ResNet-152:具有152个卷积层的网络。
-
基于Block类型的变体:
- 浅层网络ResNet-18和ResNet-34通常由BasicBlock搭成。
- 深层网络ResNet-50, ResNet-101, ResNet-152以及更深的网络通常由Bottleneck块搭成。
-
其他变体:
- ResNeXt:引入了分组卷积的ResNet变体,可以有效地减轻模型的过拟合问题,同时提升模型的表达能力。
- ResNet-D:这是ResNet的一个变体。
- Wide ResNet:这是ResNet的一个变体,具有更宽的层,可以提高模型的性能。
不同ResNet变体中残差块的内容和结构的详细说明:
ResNet-18 和 ResNet-34
- 残差块类型:BasicBlock
- 结构:每个残差块由两个3x3的卷积层组成,每个卷积层后面跟着一个批量归一化层(Batch Normalization)和ReLU激活函数。在需要进行下采样或通道数变化的地方,会在shortcut连接中使用1x1的卷积核进行调整。
ResNet-50
- 残差块类型:Bottleneck
- 结构:每个残差块由三个卷积层组成:
- 第一个卷积层是1x1的卷积,用于降维。
- 第二个卷积层是3x3的卷积。
- 第三个卷积层是1x1的卷积,用于恢复维度。
- 参数:Bottleneck结构通过1x1卷积降低参数数量,使得模型可以更深。
ResNet-101 和 ResNet-152
- 残差块类型:Bottleneck
- 结构:与ResNet-50相同,也是由三个卷积层组成,但残差块的数量不同,ResNet-101有101个卷积层,而ResNet-152有152个卷积层。
总结
- ResNet-18和ResNet-34使用BasicBlock,适合层数较少的网络。
- ResNet-50、ResNet-101和ResNet-152使用Bottleneck,适合层数较多的深层网络,通过1x1卷积降低参数数目和计算量。