详解和对比ResNet和DenseNet和MobileNet

本文详细对比了ResNet50、DenseNet121和MobileNet系列(v1、v2、v3)的网络结构与特点。ResNet利用残差学习解决深层网络的梯度消失问题;DenseNet通过密集连接提高特征传递效率;MobileNet则采用Depthwise Separable卷积实现轻量化,v2引入Linear Bottleneck和Inverted Residuals,v3则利用NAS和h-swish/sigmoid优化网络结构,提升性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经典的Backbone,如ResNet50、DenseNet121、MobileNetV2,三类框架,参考 Keras Applications

ResNet50 DenseNet121 MobileNetV2
时间 CVPR 2015 CVPR 2017 CVPR 2018
模型 98M 33M 14M
Top1(ImageNet) 0.749 0.750 0.713
参数 25,636,712(约2500w) 8,062,504(约800w) 3,538,984(约350w)
推理速度CPU 58.20ms 77.14ms 25.90ms
推理速度GPU 4.55ms 5.38ms 3.83ms

ResNet50

### ResNet_UNet 架构详解 #### 结构概述 ResNet_UNet 是一种结合了 ResNet U-Net 的混合神经网络架构。该架构利用 ResNet 中的残差学习机制来解决深层网络中的退化问题,同时采用 U-Net 的编码器-解码器结构来进行图像分割任务。 #### 编码器部分 编码器基于改进后的 ResNet 模型构建。通过引入跳跃连接(skip connection),即使在网络层数较多的情况下也能保持良好的性能[^1]。这种设计不仅能够有效缓解梯度消失/爆炸的问题,还能增强特征传递效率,使得更深层次的卷积层可以更好地捕捉细节信息[^4]。 #### 解码器部分 解码器负责将低分辨率特征映射逐步恢复成高分辨率输出。在此过程中,来自相同尺度编码阶段的特征图会被拼接进来作为辅助输入,从而保留更多上下文信息并改善边界定位精度[^3]。 #### 特殊组件:跳跃连接与注意力机制 除了标准的跳连外,某些版本还集成了注意力模块,用于突出显示重要区域或通道的重要性权重。这有助于进一步提升模型对于复杂场景的理解能力以及抗噪性[^2]。 ```python import torch.nn as nn class ResidualBlock(nn.Module): def __init__(self, in_channels, out_channels): super(ResidualBlock, self).__init__() self.conv1 = nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1) self.bn1 = nn.BatchNorm2d(out_channels) self.relu = nn.ReLU(inplace=True) self.conv2 = nn.Conv2d(out_channels, out_channels, kernel_size=3, padding=1) self.bn2 = nn.BatchNorm2d(out_channels) def forward(self, x): residual = x out = self.conv1(x) out = self.bn1(out) out = self.relu(out) out = self.conv2(out) out = self.bn2(out) out += residual out = self.relu(out) return out class EncoderDecoder(nn.Module): def __init__(self): super(EncoderDecoder, self).__init__() # 定义编码器解码器的具体层次... def forward(self, x): encoded_features = [] for layer in self.encoder_layers: x = layer(x) encoded_features.append(x.clone()) for i, layer in enumerate(self.decoder_layers): skip_connection = encoded_features[-i-1] x = torch.cat([x, skip_connection], dim=1) # 跳跃连接 x = layer(x) return x ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ManonLegrand

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值