把公司网站 公开下载 做教程 侵权吗,自己做盗版小说网站,平面设计师推荐网站,wordpress时钟插件回顾一下ShuffleNetV1:08_旷视轻量化网络--ShuffleNet V1-CSDN博客
1.1 简介
ShuffleNet V2是在2018年由旷视科技的研究团队提出的一种深度学习模型#xff0c;主要用于图像分类和目标检测等计算机视觉任务。它是ShuffleNet V1的后续版本#xff0c;重点在于提供更高效的模…回顾一下ShuffleNetV1:08_旷视轻量化网络--ShuffleNet V1-CSDN博客
1.1 简介
ShuffleNet V2是在2018年由旷视科技的研究团队提出的一种深度学习模型主要用于图像分类和目标检测等计算机视觉任务。它是ShuffleNet V1的后续版本重点在于提供更高效的模型设计同时保持或提升模型的准确性。
核心设计理念 高效性与准确性并重ShuffleNet V2的设计初衷是解决深度学习模型在移动端和嵌入式设备上部署时面临的效率与准确性之间的权衡问题。它旨在以最少的计算资源和内存占用达到尽可能高的分类或检测准确率。 通道重排Channel Shuffle这一特性从ShuffleNet V1继承而来通过随机打乱不同组内的通道促进特征的混合增加模型的表达能力。这有助于模型学习到更加丰富的特征组合从而提升性能。
主要创新点 分层结构优化不同于V1V2版本通过引入更复杂的块blocks设计来优化网络结构。每个块可能包含多个路径每个路径具有不同的功能如特征提取、特征重组等这样的设计能更高效地利用计算资源。 均衡通道宽度研究发现保持每层网络的通道数相对均衡可以减少内存访问的开销并且对模型性能影响不大。因此ShuffleNet V2采用了所有层通道数相等的设计原则这有助于模型在移动设备上更快运行。 组卷积的改进应用虽然组卷积能有效减少计算量但过度分组会导致模型性能下降。V2通过精细调整组的数量和结构找到了计算效率和模型性能之间的最佳平衡点。 直接面向实际运行速度的优化在设计过程中除了理论上的计算量FLOPs外研究者还直接考虑了模型在实际硬件上的运行速度。这意味着在设计决策中融入了对实际部署环境的考量包括CPU和GPU的特定性能特征。 计算和内存访问成本的细致优化通过对模型内部的元素级操作如ReLU、Addition进行深入分析和优化减少了不必要的计算负担和内存访问进一步提升了模型的运行效率。
ShuffleNet V2由于其出色的效率和性能在移动设备、智能安防、自动驾驶以及各种IoT设备上的视觉应用中得到了广泛应用。它的设计原则和优化思路也为后来的轻量化网络设计提供了宝贵的经验和指导推动了深度学习模型在实际应用中的普及和发展。
shuffleNet出自论文《ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design》下面我们来学习一下这篇论文。
1.2 四条轻量化网络设计原则 准则一和准则二
对于V2用了大量的分组1x1卷积。 准则三碎片化指分支多网络较宽 准则四尽量回避主元素操作 1.3 V2的模型结构
ShuffleNet V2相比V1有几项关键改进和特点这些改进主要是为了进一步提升模型的效率和准确性特别是在移动端和嵌入式设备上的表现。以下是ShuffleNet V2相较于V1的一些主要特点
更高效的结构设计 V2放弃了V1中的基于瓶颈模块的设计转而采用一种新的结构称为“ShuffleNet块”。这种设计通过重新安排层的顺序和结构减少了计算成本同时保持了模型的表达能力。均衡的通道宽度 V2提出了一种“均衡通道宽度”的设计理念即网络中所有层的通道数保持一致或接近。这与V1中通道数随深度增加而增加的做法不同。实验表明这种设计能降低内存访问成本MAC提升运行效率且对准确性影响较小。优化的组卷积策略 在V2中对组卷积group convolution的使用进行了优化避免了过量分组可能带来的性能下降。通过合理设置组数V2在减少计算量的同时确保了模型的表达能力不受太大影响。直接优化实际运行速度 设计时不仅考虑理论上的计算复杂度FLOPs更侧重于模型在实际设备上的运行速度。这意味着V2在设计时充分考虑了硬件特性如内存带宽和计算单元的利用率。减少元素级操作 为了避免element-wise操作如加法造成的额外计算负担V2中使用concatenation连接操作代替了部分element-wise操作减少了计算成本提升了运行效率。通道重排的改进位置 相对于V1中channel shuffle的位置V2将其放置在block的不同位置以更好地适应新的结构设计进一步促进了特征的混合和信息的流通。新增操作 在全局平均池化Global Average Pooling, GAP之前添加了一个额外的卷积层conv5这是V2相比于V1的一个显著区别旨在进一步提炼特征提升模型的分类性能。
右侧是V2的结构。我们先看基本模块。V2在基本模块采用了一个“channel Split”操作就是把一半的通道数走左边的路另一半通道数走右边的路且注意V2的1x1卷积并不是像V1那样是分组1x1卷积。然后采用concat摞在一起连接操作而不是逐元素相加ADD的操作 可以看到V2是满足轻量化网络的四条设计原则的。
V2的模型结构如下图 和DenseNet的特征复用相比较类似的地方
ShuffleNetV2通过模型的结构实现了不同层之前模型的共享和复用。这种效果和DenseNet相比是很类似的。
1.4 V2的性能 图为ShuffleNetV2与部分其他轻量化的网络比较 2.pytorch模型复现
马上更新