ResNet系列

本文深入探讨了ResNet和ResNeXt深度残差网络的原理与架构,分析了残差结构如何解决梯度消失问题,提升深层网络的训练效果。同时,对比了ResNeXt与ResNet在网络架构、实验表现及效率上的差异,揭示了分组卷积在特征提取中的优势。

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

ResNet

Deep Residual Learning for Image Recognition(CVPR 2015)速达>>

残差结构

在这里插入图片描述

网络架构

在这里插入图片描述

在这里插入图片描述

实验

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ResNeXt

论文Aggregated Residual Transformations for Deep Neural Networks(CVPR 2017)

出发点:不增加FLOPs的情况下,通过改善结构,优化特征提取,增加精度

Blocks of ResNeXt

改进结构类似 Inception ,但这里是拆分成一系列一样的结构,后面证明这样的结构确实能更有效地提取特征

在这里插入图片描述

下面三种结构理论上的等价,下图(c)表达更加简洁,实现速度更快
在这里插入图片描述

网络架构

ResNeXt与ResNet相比,FLOPs基本差不多,但是实测速度却慢很多,ShuffleNet v2有相关讨论。
在这里插入图片描述

相关实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考文献

【1】详解残差网络
【2】深度可分离卷积
【3】深度学习中的卷积方式
【4】ShuffleNet v2
【5】Resnet到底在解决一个什么问题呢?
【6】理解分组卷积和深度可分离卷积如何降低参数量
【7 】The Shattered Gradients Problem:If resnets are the answer, then what is the question?(论文)

### 关于ResNet系列模型的参数量和存储需求 ResNet(残差网络)是一种深度卷积神经网络架构,其核心特点是通过引入短路连接(skip connections),解决了深层网络中的梯度消失问题并提升了训练效果。对于ResNet系列模型的参数量以及相应的存储需求,可以从以下几个方面进行分析: #### 参数量计算方法 通常情况下,卷积层的参数数量可以通过以下公式计算得出: \[ \text{Parameters} = (\text{Kernel Height} \times \text{Kernel Width} \times \text{Input Channels} + 1) \times \text{Output Channels} \] 其中,“+1”表示偏置项[^3]。 在ResNet中,每一层的卷积核尺寸通常是固定的(如 \(3 \times 3\) 或 \(1 \times 1\))。因此,不同版本的ResNet(如ResNet-18、ResNet-34、ResNet-50等)主要区别在于层数的不同,这直接影响到整体参数的数量。 #### 不同ResNet变体的参数统计 以下是几种常见ResNet模型的参数量统计数据[^4]: | **Model** | **Layers** | **Total Parameters (Approx.)** | |---------------|------------|--------------------------------| | ResNet-18 | 18 | ~11.7M | | ResNet-34 | 34 | ~21.8M | | ResNet-50 | 50 | ~25.6M | | ResNet-101 | 101 | ~44.5M | | ResNet-152 | 152 | ~60.2M | 这些数据表明,随着网络深度增加,参数总量也相应增长,但并非线性关系,因为某些结构设计(如瓶颈模块)可以有效减少参数规模。 #### 存储需求估算 假设浮点数采用单精度格式(FP32),即每个数值占用4字节,则上述各模型所需存储空间可简单估计如下: - ResNet-18: \(11.7\,\text{MB}\) - ResNet-34: \(21.8\,\text{MB}\) - ResNet-50: \(25.6\,\text{MB}\) - ResNet-101: \(44.5\,\text{MB}\) - ResNet-152: \(60.2\,\text{MB}\) 值得注意的是,在实际部署过程中还需考虑激活图(activation maps)、优化器状态等因素带来的额外内存消耗[^5]。 ```python def calculate_storage(parameters_in_millions): """Estimate storage requirement based on number of parameters.""" bytes_per_parameter = 4 # FP32 precision total_bytes = int(parameters_in_millions * 1e6 * bytes_per_parameter / (1 << 20)) return f"{total_bytes} MB" print(calculate_storage(11.7)) # Example for ResNet-18 ``` 以上代码片段展示了如何基于给定参数数目来粗略评估所需的磁盘或RAM容量。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值