Wide resnet101网络结构
时间: 2025-07-13 11:16:34 浏览: 9
### Wide ResNet101 的网络结构详解
Wide ResNet 是一种基于传统 ResNet 结构改进的神经网络模型,旨在通过增加宽度而非深度来提升性能。相比于标准的 ResNet 系列(如 ResNet50 或 ResNet101),Wide ResNet 更加注重扩展每一层中的特征通道数,从而增强模型表达能力。
#### 基本概念
Wide ResNet 的核心思想是在不显著增加计算量的情况下提高网络容量。它通过对基础模块(BasicBlock 和 Bottleneck)中的卷积核数量进行放大实现这一点。具体来说,Wide ResNet 使用了一个超参数 \( k \),称为 **width multiplier**,用于控制网络的宽度扩张程度[^3]。例如,在原始 ResNet 中某个 BasicBlock 可能有 64 个滤波器,而在 Wide ResNet 中该值会被乘以 \( k \)。
对于 Wide ResNet101 而言,其整体架构仍然遵循 ResNet101 的基本框架,但每个阶段内的卷积层数量被调整为更宽的形式。通常情况下,Wide ResNet 将会采用更大的 feature maps 数目而不是单纯堆叠更多层次。
#### 架构细节
以下是 Wide ResNet101 的一些关键特性:
1. **残差连接**: 类似于常规 ResNet 设计,Wide ResNet 同样利用了跳跃连接 (skip connections)[^2] 来缓解梯度消失问题并促进训练过程收敛。
2. **Bottleneck 单元**: 对于较深版本像 Wide ResNet101 这样的变体,默认会选择使用 bottleneck structure。这种结构由三个连续操作组成——首先是减少输入维度的小型 1×1 卷积;接着执行空间上的变换的大尺寸 3×3 卷积;最后再恢复到原来大小或者更高维数的空间上应用另一个小型 1×1 卷积[^1]。
```python
class Bottleneck(nn.Module):
expansion = 4
def __init__(self, inplanes, planes, stride=1, downsample=None):
super(Bottleneck, self).__init__()
self.conv1 = nn.Conv2d(inplanes, planes, kernel_size=1, bias=False)
self.bn1 = nn.BatchNorm2d(planes)
self.conv2 = nn.Conv2d(planes, planes, kernel_size=3, stride=stride,
padding=1, bias=False)
self.bn2 = nn.BatchNorm2d(planes)
self.conv3 = nn.Conv2d(planes, planes * self.expansion, kernel_size=1, bias=False)
self.bn3 = nn.BatchNorm2d(planes * self.expansion)
self.relu = nn.ReLU(inplace=True)
self.downsample = downsample
self.stride = stride
def forward(self, x):
identity = x
out = self.conv1(x)
out = self.bn1(out)
out = self.relu(out)
out = self.conv2(out)
out = self.bn2(out)
out = self.relu(out)
out = self.conv3(out)
out = self.bn3(out)
if self.downsample is not None:
identity = self.downsample(x)
out += identity
out = self.relu(out)
return out
```
3. **Width Multiplier (\(k\))**: 定义了相对于原版 ResNet 模块中 filter counts 扩展的比例因子\(k\)。比如如果设置\(k=2\) ,那么原本具有64 filters的第一组convolutional layers现在会有\(64*k=128\)filters.
4. **Global Average Pooling & Fully Connected Layer Replacement**: 如同经典ResNets一样,Wider variants也倾向于替换掉传统的fully connected layer with global average pooling followed by softmax classification.[^2]
综上所述,wider resnets maintain similar depth as their narrower counterparts but significantly increase the number of channels per convolutional block,resulting higher capacity models that can better capture complex patterns within data sets while maintaining manageable computational costs due careful architectural choices made during design phase.
阅读全文
相关推荐



















