深度学习与计算机视觉教程(10) | 轻量化CNN架构 (SqueezeNet,ShuffleNet,MobileNet等)(CV通关指南·完结)

ViT补充问题之Conv2d和StdConv2d ViT模型中的Hybird混合模型补充 阅读详情

ShowMeAI研究中心


前言

卷积神经网络的结构优化和深度加深,带来非常显著的图像识别效果提升,但同时也带来了高计算复杂度和更长的计算时间,实际工程应用中对效率的考虑也很多,研究界与工业界近年都在努力「保持效果的情况下压缩网络复杂度」,也诞生了很多轻量化网络。在本篇内容中,ShowMeAI对常见主流轻量级网络进行展开讲解。

本篇重点

  • 神经网络参数与复杂度计算
  • 轻量化网络
  • SqueezeNet
  • Xception
  • ShuffleNet V1~V2
  • MobileNet V1~V3

1.基础知识

我们先来做一点基础知识储备,本篇讲到的轻量化CNN框架,我们需要了解参数量和计算量的估测与计算方式。

1.1 复杂度分析

  • 理论计算量(FLOPs):浮点运算次数(FLoating-point Operation)
  • 参数数量(params):单位通常为 M M M,用 float32 表示。

1.2 典型结构对比

  • 标准卷积层 std conv(主要贡献计算量)
    • params: k h × k w × c i n × c o u t k_h\times k_w\times c_{in}\times c_{out} kh​×kw​×cin​×cout​
    • FLOPs: k h × k w × c i n × c o u t × H × W k_h\times k_w\times c_{in}\times c_{out}\times H\times W kh​×kw​×cin​×cout​×H×W
  • 全连接层 fc(主要贡献参数量)
    • params: c i n × c o u t c_{in}\times c_{out} cin​×cout​
    • FLOPs: c i n × c o u t c_{in}\times c_{out} cin​×cout​
  • group conv
    • params: ( k h × k w × c i n / g × c o u t / g ) × g = k h × k w × c i n × c o u t / g (k_h\times k_w\times c_{in}/g \times c_{out}/g)\times g=k_h\times k_w\times c_{in}\times c_{out}/g (kh​×kw​×cin​/g×cout​/g)×g=kh​×kw​×cin​×cout​/g
    • FLOPs: k h × k w × c i n × c o u t × H × W / g k_h\times k_w\times c_{in}\times c_{out}\times H\times W/g kh​×kw​×cin​×cout​×H×W/g
  • depth-wise conv
    • params: k h × k w × c i n × c o u t / c i n = k h × k w × c o u t k_h\times k_w\times c_{in}\times c_{out}/c_{in}=k_h\times k_w\times c_{out} kh​×kw​×cin​×cout​/cin​=kh​×kw​×cout​
    • FLOPs: k h × k w × c o u t × H × W k_h\times k_w\times c_{out}\times H\times W kh​×kw​×cout​×H×W

2.SqueezeNet

轻量化网络中一个著名的网络是 SqueezeNet ,它发表于ICLR 2017,它拥有与 AlexNet 相同的精度,但只用了 AlexNet 1/50 的参数量。

SqueezeNet 的核心在于采用不同于常规的卷积方式来降低参数量,具体做法是使用 Fire Module,先用 1 × 1 1 \times 1 1×1 卷积降低通道数目,然后用 1 × 1 1 \times 1 1×1 卷积和 3 × 3 3 \times 3 3×3 卷积提升通道数。

2.1 压缩策略

SqueezeNet 采用如下3个策略:

  • ① 将 3 × 3 3 \times 3 3×3 卷积替换为 1 × 1 1 \times 1 1×1 卷积
  • ② 减少 3 × 3 3 \times 3 3×3 卷积的通道数
  • ③ 将降采样操作延后,这样可以给卷积提供更大的 activation map,从而保留更多的信息,提供更高的分类准确率。

其中,策略1和2可以显著减少模型参数量,策略3可以在模型参数量受限的情况下提高模型的性能。

2.2 Fire Module

Fire Module是SqueezeNet网络的基础模块,设计如下图所示:

SqueezeNet; Fire Module 模块

一个 Fire Module 由 Squeeze 和 Extract 两部分组成:

  • Squeeze 部分包括了一系列连续的 1 × 1 1 \times 1 1×1 卷积
  • Extract 部分包括了一系列连续的 1 × 1 1 \times 1 1×1 卷积和一系列连续的 3 × 3 3 \times 3 3×3 卷积,然后将 1 × 1 1 \times 1 1×1 和 3 × 3 3 \times 3 3×3 的卷积结果进行concat。

记 Squeeze 部分的通道数为 C s 1 × 1 C_{s{1\times 1}} Cs1×1​,Extract部分 1 × 1 1 \times 1 1×1 和 3 × 3 3 \times 3 3×3 的通道数分别为 C e 1 × 1 C_{e{1\times 1}} Ce1×1​ 和 C e 3 × 3 C_{e{3\times 3}} Ce3×3​,作者建议 C s 1 × 1 < C e 1 × 1 + C e 3 × 3 C_{s{1\times 1}} \lt C_{e{1\times 1}} + C_{e{3\times 3}} Cs1×1​<Ce1×1​+Ce3×3​ ,这样做相当于在 Squeeze 和 Extraxt 之间插入了 bottlenet。

2.3 网络结构

在Fire Module的基础上搭建SqueezeNet神经网络。它以卷积层开始,后面是 8 个 Fire Module,最后以卷积层结束,每个 Fire Module 中的通道数目逐渐增加。另外网络在 conv1,fire4,fire8,conv10的后面使用了 max-pooling。

SqueezeNet 结构如下图所示,左侧是不加 shortcut 的版本,中间是加了 shortcut 的版本,右侧是在不同通道的特征图之间加入 shortcut 的版本。

SqueezeNet; SqueezeNet 网络结构

SqueezeNet的性能类似于AlenNet,然而参数量只有后者的1/50,使用Deep Compression可以进一步将模型大小压缩到仅仅有0.5M。

2.4 SqueezeNet缺点

SqueezeNet 缺点如下:

  • SqueezeNet 通过更深的网络置换更多的参数,虽然有更低的参数量,但是网络的测试阶段耗时会增加,考虑到轻量级模型倾向于应用在嵌入式场景,这一变化可能会带来新的问题。
  • AlaxNet 的参数量(50M)大部分由全连接层带来,加上一部分参数量进行对比,数字稍有夸张。

3.Xception

另一个需要提到的典型网络是 Xception,它的基本思想是,在 Inception V3 的基础上,引入沿着通道维度的解耦合,基本不增加网络复杂度的前提下提高了模型的效果,使用Depthwise Seperable Convolution实现。

Xception虽然不是出于轻量级的考虑而设计的模型,但是由于使用了pointwise convolution和depthwise convolution的结合,实际上也起到了降低参数量的效果,我们也放在轻量模型里做个介绍。

3.1 设计动机

卷积在 HWC(高 × \times × 宽 × \times × 通道数)这3个维度上进行学习,既考虑空间相关性,又考虑通道相关性,可以考虑这两种相关性解耦分开。

Xception 的做法是使用 point-wise convolution 考虑 cross-channel correlation,使用 depthwise convolution 考虑 spatial correlation。

3.2 从Inception到Extreme version of Inception

下图是一个 Inception V3 的基础模块,分别用 1 × 1 1 \times 1 1×1 卷积和 3 × 3 3 \times 3 3×3 卷积考虑通道相关性和空间相关性,基本结构是用 1 × 1 1 \times 1 1×1 卷积降维,用 3 × 3 3 \times 3 3×3 卷积提取特征:

Xception; Inception 网络结构

如果将上述结构简化,则可以得到如下的结构,可见每一个分支都包含了一个 1 × 1 1 \times 1 1×1 卷积和一个 3 × 3 3 \times 3 3×3 卷积:

Xception; 对 Inception 简化

从上图中可见,对于每一个分支,该模块使用 1 × 1 1 \times 1 1×1 卷积对输入特征图进行处理,然后使用 3 × 3 3 \times 3 3×3 卷积提取特征。

如果考虑空间相关性和通道相关性的解耦合,即用同一个 1 × 1 1 \times 1 1×1 卷积进行通道处理,将处理结果沿着通道维度拆解为若干部分,对于每一部分使用不同的 3 × 3 3 \times 3 3×3 卷积提取特征,则得到如下图所示的模块:

Xception; 解耦合 Inception

考虑一种更为极端的情况,在使用 1 × 1 1 \times 1 1×1 卷积之后,沿着通道维度进行最为极端的拆解,对于拆解后的每一个部分使用 3 × 3 3 \times 3 3×3 卷积提取特征,这一步可以使用 depthwise convolution 实现,最后将这些提取到的特征图进行 concat,这就是 Xception 的基础模块,如下图所示:

Xception; Inception 改造为 Xception 基础模块

通过上图可以看到,该模块将输入数据在「通道维度」上解耦,我们称之为 extreme version of inception module。这点与 depthwise seperable convolution 很相似。

3.3 Extreme version of Inception与Depthwise Seperable Convolution

这一操作与 Depthwise Seperable Convolution 十分相似,后者包含 Depthwise Convolution 和 Pointwise Convolution 两部分。

上图所示的基础模块与 Depthwise Seperable Convolution 有如下两点不同:

  • ① Depthwise Seperable Convolution先使用depthwise convolution,再使用 1 × 1 1 \times 1 1×1 卷积进行融合;上图所示的基础模块先使用 1 × 1 1 \times 1 1×1 卷积,再使用depthwise convolution。
  • ② Depthwise Seperable Convolution 的 depthwise convolution 和 1 × 1 1 \times 1 1×1 卷积之间没有激活函数;上图所示的基础模块的这两个操作之间有激活函数。

在 Xception 中,作者直接使用了 Depthwise Seperable Convolution 作为基础模块。

3.4 Xception网络结构

最后将这一基础模块叠加,并结合残差连接,就得到了Xception网络结构:

Xception; Xception 网络结构

4.ShuffleNet

ShuffleNet 是由旷世科技提出的轻量化CNN网络,论文名称《ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices》,目标是改造网络架构使其能应用在移动设备上。

4.1 设计动机

ShuffleNet的动机在于大量的 1 × 1 1 \times 1 1×1 卷积会耗费很多计算资源,而 Group Conv 难以实现不同分组之间的信息交流;ShuffleNet 的解决方式是:使用 Group Conv 降低参数量;使用Channel Shuffle实现不同组之间的信息交流,进而对ResNet进行改进,可以看作ResNet的压缩版本。

4.2 Group Conv

我们再来看看Group Conv这个结构,它的基本思想是对输入层的不同特征图进行分组,再使用不同的卷积核对不同组的特征图进行卷积,通过分组降低卷积的计算量。

而Depthwise Convolution可以视作Group Conv的一种特殊情形。

假设输入通道为 C i C_i Ci​,输出通道为 C o C_o Co​,分组数目为 g g g,Group Conv的操作如下:

  • 将输入特征图沿着通道分为 g g g 组,每一组的通道数目为 C i / g C_i/g Ci​/g。
  • 使用 g g g 个不同的卷积核,每一个卷积核的滤波器数量为 C o / g C_o/g Co​/g。
  • 使用这 g g g 个不同的卷积核,对 g g g 组特征图分别进行卷积,得到 g g g 组输出特征图,每一组的通道数为 C o / g C_o/g Co​/g。
  • 将这 g g g组的输出特征图结合,得到最终的 C o C_o Co​ 通道的输出特征图。

4.3 Channel Shuffle

Group Conv 的一个缺点在于不同组之间难以实现通信。一个可能的解决方式是使用 1 × 1 1 \times 1 1×1 卷积进行通信,但是这样会引入很大的计算量。

文中提出的思路是对 Group Conv 之后的特征图沿着通道维度进行重组,这样信息就可以在不同组之间流转,即 Channel Shuffle,如下图©所示。

ShuffleNet; Channel Shuffle

其实现过程如下:

  • ① 输入特征图通道数目为 g × n g\times n g×n
  • ② 将特征图的通道维度reshape为 ( g , n ) (g,n ) (g,n)
  • ③ 转置为 ( n , g ) (n,g ) (n,g)
  • ④ 平坦化成 g × n g \times n g×n 个通道

4.4 ShuffleNet基础模块

结合 Group Conv 和 Channel Shuffle,对ResNet的基础模块bottleneck(下图(a))进行改进,就得到了 ShuffleNet 的基础模块(下图(b)和©)

ShuffleNet; ShuffleNet 基础模块

4.5 ShuffleNet缺点

  • Channel Shuffle 操作较为耗时,导致 ShuffleNet 的实际运行速度没有那么理想。
  • Channel Shuffle 的规则是人为制定的,更接近于人工设计特征。

5.ShuffleNet V2

在 ShuffleNet 之后又有改进的版本 ShuffleNet V2,改进了上述提到的 ShuffleNet 缺点,减少其耗时。

5.1 设计动机

ShuffleNet的轻量级网络设计,FLOPs 减少了很多,但实际的时间消耗并不短。原因是网络训练或者推理的过程中,FLOPs 仅仅是其耗时的一部分,其他操作(如内存读写、外部数据 IO 等)也会占用时间。

ShuffleNet V2 的作者分析了几种网络结构在 GPU/ARM 这两种平台上的计算性能指标,并提出了4条移动端卷积网络设计的准则,根据这些准则改进 ShuffleNet 得到了 ShuffleNet V2。

我们先来看看这4条移动端网络设计准则:

5.2 高效CNN设计的几个准则

使用的指标是内存访问时间(Memory Access Cost, MAC)。用理论和实验说明了以下几条准则。

1) 输入输出通道数目相同时,卷积层所需的MAC最小。

理论推导:假设 1 × 1 1 \times 1 1×1 卷积的输入通道数目为 c 1 c_1 c1​,输出通道数目为 c 2 c_2 c2​,特征图大小为 h × w h\times w h×w,则这样一个 1 × 1 1 \times 1 1×1 卷积的 FLOPs 为:

B = h w c 1 c 2 B=hwc_1 c_2 B=hwc1​c2​

所需的存储空间如下,其中 h w c 1 hwc_1 hwc1​ 表示输入特征图所需空间, h w c 2 hwc_2 hwc2​ 表示输出特征图所需空间, c 1 c 2 c_1c_2 c1​c2​ 表示卷积核所需空间:

M A C = h w ( c 1 + c 2 + c 1 c 2 ) MAC = hw(c_1 + c_2 + c_1 c_2) MAC=hw(c1​+c2​+c1​c2​)

根据均值不等式可得:

M A C ≥ 2 h w B + B h w MAC \ge 2 \sqrt {hwB} + \frac {B}{hw} MAC≥2hwB ​+hwB​

等式成立的条件是 c 1 = c 2 c_1 = c_2 c1​=c2​,即在给定 FLOPs,输入特征通道数和输出特征通道数相等时,MAC 达到取值的下界。 实验证明: c 1 c_1 c1​和 c 2 c_2 c2​越接近、速度越快,如下表。

高效CNN的设计准则; 当输入、输出通道数目相同时,卷积层所需的 MAC 最小

2) 过多的group操作会增大MAC

理论推导:带 group 的 1 × 1 1 \times 1 1×1 卷积的FLOPs如下,其中 g g g 表示分组数目:

B = h w c 1 c 2 g B = \frac{hwc_1c_2}{g} B=ghwc1​c2​​

MAC 如下:

M A C = h w ( c 1 + c 2 + c 1 c 2 g ) MAC = hw(c_1 + c_2 + \frac {c_1c_2}{g} ) MAC=hw(c1​+c2​+gc1​c2​​)

因此:

M A C = h w ( c 1 + c 2 + c 1 c 2 g = h w c 1 + B g c 1 + B h w \begin{aligned} MAC &= hw(c_1 + c_2 + \frac {c_1c_2}{g} \\ & =hwc_1 + \frac {Bg} {c_1} + \frac {B} {hw} \end{aligned} MAC​=hw(c1​+c2​+gc1​c2​​=hwc1​+c1​Bg​+hwB​​

可见,在一定 FLOPs 的情况下,分组数目 g g g 越大,MAC 也越大。

实验证明:在FLOPs基本不变的操作下,group越大,速度越慢,如下图所示。

高效CNN的设计准则; 过多的 group 操作会增大MAC

3) 模型的碎片化程度越低,模型速度越快

实验证明:fragment 表示碎片化程度的量化,serious 表示串行,即几个卷积层的叠加,parallel 表示并行,即类似于 Inception 的设计。可见在 FLOPs 不变的情况下,分支数量越多,网络的实际耗时越大。

高效CNN的设计准则; 模型的碎片化程度越低,模型速度越快

4) element-wise操作所带来的时间消耗远比在FLOPs上的体现的数值要多。

element-wise 操作虽然基本不增加 FLOPs,但是在 ShuffleNet V1 和 MobileNet V2 中,其耗时是十分可观的,如下图:

高效CNN的设计准则; element-wise 操作所带来的时间消耗远比在 FLOPs 上的体现的数值要多

实验证明:基于 ResNet 的 bottleneck 进行了实验,short-cut 是一种 element-wise 操作。实验证明short-cut 操作会带来耗时的增加。

高效CNN的设计准则; short-cut 操作会带来耗时的增加

5.3 ShuffleNet V2基础模块

基于前面提到的4条准则,对 ShuffleNet 的基础模块(下图(a)(b))进行修改,得到 ShuffleNet V2 的基础模块(下图中©(d)):

ShuffleNet V2; ShuffleNet V2 基础模块

图中 © 和 (a) 相比,有如下不同之处:

  • ① 模块的开始处增加了一个 Channel Split 操作,将输入特征图沿着通道分为 c ′ c' c′ 和 c − c ′ c-c' c−c′ 两部分,文中 c ′ = c / 2 c'=c/2 c′=c/2 ,对应于「准则1」。
  • ② 取消了 1 × 1 1 \times 1 1×1 卷积中的 Group 操作,对应于「准则2」。
  • ③ Channel Shuffle 移到了 Concat 后面,对应「准则3」。(因为 1 × 1 1 \times 1 1×1 卷积没有 Group 操作,没有必要在后面接 Channel Shuffle)
  • ④ element-wise add 替换成 concat,对应「准则4」。

(b)、(d) 之间的区别也类似,另外(d) 的两个分支都进行了降采样,且最初没有 Channel Split 操作,因此 Concat 之后的通道数目翻倍。

5.4 ShuffleNet V2整体结构

上述 ShuffleNet V2 基础模块级联,配合卷积、池化等衔接,就得到了如下图的 ShuffleNet V2 结构:

ShuffleNet V2; ShuffleNet V2

6.MobileNet

另外一个非常有名的轻量化移动端网络是 MobileNet,它是专用于移动和嵌入式视觉应用的卷积神经网络,是基于一个流线型的架构,使用深度可分离的卷积来构建轻量级的深层神经网络。 MobileNet 凭借其优秀的性能,广泛应用于各种场景中,包括物体检测、细粒度分类、人脸属性和大规模地理定位。

MobileNet有 V1 到 V3 不同的版本,也逐步做了一些优化和效果提升,下面我们来分别看看它的细节。

6.1 MobileNet核心思想

MobileNet V1 的核心是将卷积拆分成 Depthwise Conv 和 Pointwise Conv 两部分,我们来对比一下普通网络和MobileNet的基础模块

  • 普通网络(以VGG为例) : 3 × 3 3 \times 3 3×3 Conv BN ReLU
  • Mobilenet基础模块: 3 × 3 3 \times 3 3×3 Depthwise Conv BN ReLU 和 1 × 1 1\times1 1×1 Pointwise Conv BN ReLU

MobileNet; MobileNet 基础模块

6.2 MobileNet缺点

  • ① ReLU激活函数用在低维特征图上,会破坏特征。
  • ② ReLU输出为0时导致特征退化。用残差连接可以缓解这一问题。

7.MobileNet V2

MobileNet V2 针对 MobileNet 的上述2个问题,引入了 Inverted Residual 和 Linear Bottleneck对其进行改造,网络为全卷积,使用 RELU6(最高输出为6)激活函数。下面我们展开介绍一下核心结构:

7.1 Inverted Residual

我们对比一下普通残差模块和Inverted Residual的差别

1) 普通残差模块

先使用 1 × 1 1 \times 1 1×1 卷积降低通道数量,然后使用 3 × 3 3 \times 3 3×3 卷积提取特征,之后使用 1 × 1 1 \times 1 1×1 卷积提升通道数量,最后加上残差连接。整个过程是「压缩-卷积-扩张」。

2) Inverted Residual

先使用 1 × 1 1 \times 1 1×1 卷积提升通道数量,然后使用 3 × 3 3 \times 3 3×3 卷积提取特征,之后使用 1 × 1 1 \times 1 1×1 卷积降低通道数量,最后加上残差连接。整个过程是「扩张-卷积-压缩」。

对比两个结构块如下图所示:

轻量化CNN架构; Residual block & Inverted Residual block

7.2 Linear Bottleneck

相比于 MobileNet 的基础模块,MobileNet V2 在 Depthwise Convolution 的前面加了一个 1 × 1 1 \times 1 1×1 卷积,使用 ReLU6 代替 ReLU,且去掉了第二个 1 × 1 1 \times 1 1×1 卷积的激活函数(即使用线性的激活函数),防止 ReLU 对特征的破坏。

7.3 MobileNet V2基础模块

使用上述的方法对 MobileNet 的基础模块进行改进,得到如下所示的 MobileNet V2 基础模块:

MobileNet V2; MobileNet V2 基础模块

8.MobileNet V3

在 MobileNet V2 的基础上,又提出了MobileNet V3,它的优化之处包括:引入了 SE、尾部结构改进、通道数目调整、h-swish 激活函数应用,NAS 网络结构搜索等。我们来逐个看一下:

8.1 SE结构

MobileNet V3 在 bottleneck 中引入了 SE 结构,放在 Depthwise Convolution 之后,并且将 Expansion Layer 的通道数目变为原来的 1 / 4 1/4 1/4 ,在提升精度的同时基本不增加时间消耗。

MobileNet V3; 引入SE

8.2 尾部结构改进

MobileNet V3对尾部结构做了2处修改,从下图中「上方结构」修改为「下方结构」:

MobileNet V3; 修改尾部结构

  • 将 1 × 1 1 \times 1 1×1 卷积移动到 avg pooling 后面,降低计算量。
  • 去掉了尾部结构中「扩张-卷积-压缩」中的 3 × 3 3 \times 3 3×3 卷积以及其后面的 1 × 1 1 \times 1 1×1 卷积,进一步减少计算量,精度没有损失。

8.3 通道数目调整

相比于 MobileNet V2,MobileNet V3 对头部卷积通道数目进行了进一步的降低。

8.4 h-swish激活函数

MobileNet V3 采用了 h − s w i s h \mathbf{h-swish} h−swish 激活函数,对应的 s w i s h \mathbf{swish} swish 和 h − s w i s h \mathbf{h-swish} h−swish 激活函数计算公式如下:

s w i s h [ x ] = x ⋅ σ ( x ) \mathbf{swish}[x] = x \cdot \sigma(x) swish[x]=x⋅σ(x)

h − s w i s h [ x ] = x R e L U 6 ( x + 3 ) 6 \mathbf{h-swish}[x] = x \frac {\mathbf{ReLU6}(x + 3)}{6} h−swish[x]=x6ReLU6(x+3)​

8.5 NAS网络结构搜索

MobileNet V3 先用 NAS 搜索各个模块,得到大致的网络结构,相当于整体结构搜索;然后用NASAdapt得到每个卷积层的通道数目,相当于局部搜索。

9.参考资料

10.要点总结

  • 神经网络参数与复杂度计算
  • 轻量化网络
  • SqueezeNet
  • Xception
  • ShuffleNet V1~V2
  • MobileNet V1~V3

ShowMeAI 斯坦福 CS231n 全套解读

ShowMeAI 系列教程推荐

showmeai用知识加速每一次技术成长

轻量化CNN模型整理—MobileNet,ShuffleNet,GhostNet 目前CNN的整体发展趋势是向着更深、更复杂的网络发展,但也因此导致了更高的计算代价。而在实际应用中,网络可能需要部署在计算资源有限的平台上,因此简化网络规模、提高网络效率也成为卷积网络研究的一个方向。​本文主要整理了轻量化网络结构设计研究中的几个经典网络模型:MobileNet、ShuffleNet和GhostNet。 阅读详情

相关推荐

深度学习(3)——轻量化的CNN网络结构(SqueezeNet、MoblieNet、ShuffleNet)

轻量化模型 上一节主要针对经典的CNN网络进行概述,这一节主要针对能满足人们轻量化要求的模型进行概述。轻量化的模型通常希望他有相对于传统的CNN网络结构更少的参数量以及更快的计算速度。通常有两种措施来实现,一种是训练时就选择结构简单的网络;一种是训练完后对模型结构进行优化,例如压缩、蒸馏、剪枝等。这里主要讲基于第一种措施的网络,历史上有以下这些: 本文主要讲解SqueezeNet、MoblieNet、ShuffleNet。 优化策略 1.优化网络结构 —— eg:Shuffle Net 2.减少

weixin_41761357的博客 3114

轻量化神经网络总结:SqueezeNet、Xception、MobileNet v1、MobileNet v2、ShuffleNet v1、ShuffleNet v2

经典轻量化模型

Anut_hey的博客 2172

DL之CNN:计算机视觉之卷积神经网络算法的简介—CNN历年冠军算法、轻量化经典结构及其演化、重要进展及其改进技巧、经典结构演化及其对比之详细攻略(建议收藏)

​ DL之CNN:计算机视觉之卷积神经网络算法的简介—CNN历年冠军算法、轻量化经典结构及其演化、重要进展及其改进技巧、经典结构演化及其对比之详细攻略(建议收藏) 目录 CNN经典算法细讲 卷积神经网络经典算法的重要进展及其改进技巧 CNN经典结构演化及其对比 相关文章 DL:深度学习(神经网络)的简介、基础知识(神经元/感知机、训练策略、预测原理)、算法分类、经典案例应用之详细攻略 DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1万+

图像识别经典轻量级网络模型总结梳理、原理解析与优劣对比分析

图像识别经典轻量级网络模型总结梳理、原理解析与优劣对比分析

Together_CZ的博客 5795

CV之IC:计算机视觉之图像分类(Image Classification)方向的知识点(相关数据集、分类网络模型的发展【侧重结构改进/侧重深度增加】、轻量化模型)总结之详细攻略

​ CV之IC:计算机视觉之图像分类(Image Classification)方向的知识点(相关数据集、分类网络模型的发展【侧重结构改进/侧重深度增加】、轻量化模型)总结之详细攻略 目录 计算机视觉之图像分类的知识点总结 图像分类的简介 相关文章 DL:深度学习(神经网络)的简介、基础知识(神经元/感知机、训练策略、预测原理)、算法分类、经典案例应用之详细攻略 DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文)、CNN优化技术、调参学习实践、CNN经典结构及其演化、案例

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1371

汇川伺服Modbus-RTU通讯实战:从帧结构解析到西门子PLC配置

本文详细解析了汇川伺服与西门子PLC通过Modbus-RTU协议进行通讯的实战步骤,包括帧结构解析、硬件连接、参数设置及PLC程序配置。通过具体案例和常见问题排查指南,帮助工程师快速掌握工业自动化中的通讯技术,提升设备调试效率。

weixin_33670713的博客 456

轻量模型简介

轻量模型介绍

qq_41533576 5277

决策大模型与生成式大模型有何不同?一文拆解技术框架与落地路径

大模型技术正从内容生成走向复杂场景的智能决策。与生成式大模型拟合概率分布不同,决策大模型以序列决策为核心,融合强化学习机制,在动态环境中感知反馈、持续修正行动路径。其技术框架涵盖语义理解、规划推理与闭环决策,并通过世界模型进行低成本仿真推演,显著提升供应链调度、物流排程等场景的应对效率。实际落地时需结合传统优化算法与人工兜底,构建“语义先导+数值寻优”的分层架构,才能平衡精度与稳定性。这篇内容拆解决策大模型的技术组成、落地路径与常见误区,为企业智能化转型提供可参考的实践框架。

weixin_29057163的博客 191

轻量级模型汇总解读——涉及MobileNet、ShuffleNet、GhostNet、EfficientNet、NasNet、轻量transformer

轻量级模型汇总解读,汇总目录

lishanlu136的博客 6344

基于CNN的三相故障识别算法及实现(Matlab)

通过预处理数据、构建CNN模型、训练与评估模型等步骤,我们可以准确快速地识别三相故障。现代电力系统中,三相故障是一种常见的故障情况,可以导致电网中断、设备损坏甚至火灾等严重后果。本文将介绍基于卷积神经网络(CNN)的三相故障识别算法,并提供Matlab源代码实现。首先,将原始信号分为训练集和测试集。然后,对输入信号进行归一化处理,确保数据在合适的范围内。CNN适用于处理二维数据,所以我们可以将输入信号看作是时间序列数据和特征(如电压、电流等)的二维矩阵。在开始之前,我们需要一个包含正常和故障样本的数据集。

学习使你进步。 385

【ComfyUI】Wan2.2 + IndexTTS 图像数字人或动物口播视频生成

本文介绍了一个基于ComfyUI的数字人口播视频生成工作流,整合了IndexTTS和图像处理技术。该系统通过多模型协同工作,实现从形象图、文本和音频输入到自动生成口播视频的全流程。核心包含WanVideo系列模型,通过CLIP Vision、T5文本编码器和Wav2Vec语音模型分别处理视觉特征、语义理解和口型同步。工作流涵盖素材加载、特征提取、音频处理和视频生成等节点,支持人物、动物等多种主体的口播内容创作。该方案自动化程度高,适用于知识讲解、剧情旁白等多种场景,能帮助创作者高效产出高质量口播视频。

Mr数据杨 2060

轻量级网络模型ShuffleNet V2

ShuffleNet-V2是旷视推出的继ShuffleNet-V1的轻量级网络模型,旨在不过多牺牲模型性能的同时大幅度减小模型的尺寸和加快模型的运算速度。在同等复杂度下,ShuffleNet-V2比ShuffleNet-V1和MobileNet-V2更准确。

AIGC Studio:分享AIGC前沿知识和好玩应用,公众号同名。 3063

MES软件:Siemens Opcenter二次开发

或者在项目中右击“引用”(References),选择“添加引用”(Add Reference),浏览并选择SDK中的DLL文件。在“签名”(Signing)选项卡中,选择“为程序集签名”(Sign the assembly),并创建一个新的强名称密钥文件。在Visual Studio中,选择“测试”(Test)菜单中的“运行所有测试”(Run All Tests)。在Visual Studio中,选择“生成”(Build)菜单中的“发布”(Publish)。按照向导的提示,选择安装路径和组件。

kkchenjj的博客 1646

深度学习之CNN网络结构

由于深度学习的方便灵活,其受到了CV以及NLP领域的的极大关注,特别是CV领域,随着深度学习网络结构的层出不穷,CV领域的baseline被极大地提升。本文回顾总结CV领域中几种网络结构的特点及其动机。 1、LeNet 2层卷积,3层全连接层,现在看来该网络稀松平常、没有任何特点,但是在当时,LeNet是开创性的工作。 2、AlexNet (2012) 5层卷积,3层全连接层。和LeNet相比,第...

倾城之恋的专栏 1371

【红外DDE算法】一种应用于高动态范围红外可视化的算法

【红外DDE算法】一种应用于高动态范围红外可视化的算法 - 这个算法背后的动机 - 展示这个算法的流程 - 然后讨论各个可调参数的意义。

sunwindl91181的博客 1683

【WRF-Chem教程第四期上】运行 WRF-Chem 模型

完整介绍运行 WRF-Chem 模型的详细步骤

WW、forever的博客 3116

基于行空板与轻量化CNN的嵌入式货物识别系统实战

卷积神经网络(CNN)作为计算机视觉的核心技术,通过卷积层自动提取图像特征,是实现图像识别任务的基础原理。其技术价值在于能够将复杂的视觉模式识别问题转化为可学习的参数优化,极大地推动了人工智能在感知领域的应用。在嵌入式与边缘计算场景中,受限于设备的计算资源与功耗,轻量化CNN模型(如MobileNet)与模型量化技术成为关键,它们通过优化网络结构与参数量化,在保证精度的前提下大幅提升了推理速度与能效比。这些技术广泛应用于智能安防、工业质检、自动驾驶及物联网设备等需要实时、本地化处理的场景。本文聚焦于将轻量化

weixin_33853827的博客 331

SpringBoot 整合Jasypt 实现配置文件加密读取操作详解

SpringBoot 整合Jasypt 实现配置文件加密读取操作详解

congge 4101

深度学习中的经典基础网络结构总结

在最开始,比如在 LeNet 那个年代,也就几层网络,当网络更深的时候便会出现精度不升反降的现象,后来我们知道是因为梯度下降导致学习率下降甚至停滞,而到了 VGG 和 GoogLeNet 的年代,我们有了 ReLU,有了更好的初始化方法,有了 BN,但是如下面第一幅图所示,当深度达到50多层时,问题又出现了了,所以激活函数或者初始化方法仅仅是缓解了梯度消失,让网络的深度从几层推移到了二十多层,而如何让网络更深,正是 ResNet 被提出的原因。这里所指的网络是可以作为 backbone 的基础网络结构。..

lzmxxh168的博客 578

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

基于PyTorch与CNN的深度学习手势识别系统:从数据到部署全流程实践

手势识别是计算机视觉领域的一项基础且关键的技术,其核心目标是从图像或视频中理解并分类手部姿态。其工作原理通常依赖于深度神经网络,特别是卷积神经网络(CNN),通过其强大的特征提取能力,自动学习从原始像素到高级语义手势的映射。这项技术的价值在于为人机交互提供了自然、直观的接口,极大地提升了在智能家居、车载系统、AR/VR等场景下的用户体验。相较于传统依赖手工特征的方法,基于深度学习的手势识别系统在准确率、鲁棒性和泛化能力上具有显著优势。本文将以一个完整的项目实践为例,详细阐述如何利用PyTorch框架,从数据

weixin_30314813的博客 307

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

基于行空板与CNN的轻量级边缘视觉识别系统实战

卷积神经网络(CNN)作为计算机视觉的核心技术,通过卷积层自动提取图像特征,在图像分类与识别任务中展现出强大能力。其技术价值在于能够从数据中学习层次化特征,实现对复杂场景的鲁棒性识别。随着物联网与智能设备的发展,边缘计算将AI推理能力下沉至设备端,有效降低了网络延迟与带宽依赖,提升了系统实时性与可靠性。这一模式在工业自动化、智能安防、智慧零售等对实时性要求高的场景中具有广泛应用前景。本文以【行空板】这一集成化边缘硬件为载体,结合【MobileNetV2】轻量级CNN模型,详细阐述了从数据采集、模型训练优化到

weixin_34409357的博客 282

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

基于轻量级CNN的结膜图像贫血检测:从原理到PyTorch实战

卷积神经网络(CNN)作为深度学习在计算机视觉领域的核心架构,通过卷积层自动提取图像的层次化特征,实现了从边缘、纹理到复杂模式的识别。其核心原理在于利用局部连接和权值共享,极大地降低了模型参数量,提升了特征提取的效率。在医疗影像分析等资源受限的场景中,轻量级CNN通过深度可分离卷积、倒残差结构等技术,在保持精度的同时大幅压缩模型体积与计算开销,为移动端与边缘设备的部署提供了可能。这种技术价值在于将前沿的AI能力带入临床辅助筛查、便携式诊断设备等实际应用场景。本文以结膜图像贫血检测这一具体任务为例,详细阐述了

weixin_30263073的博客 355

轻量级模型解读——基于神经网络架构搜索(NAS)系列

神经网络结构搜索轻量级模型解读

lishanlu136的博客 3554

轻量级模型设计与部署总结

编辑|嵌入式视觉点击下方卡片,关注“自动驾驶之心”公众号ADAS巨卷干货,即可获取点击进入→自动驾驶之心【模型部署】技术交流群后台回复【模型部署工程】获取基于TensorRT的分类、检测任务的部署源码!前言关于如何手动设计轻量级网络的研究,目前还没有广泛通用的准则,只有一些指导思想,和针对不同芯片平台(不同芯片架构)的一些设计总结,建议大家从经典论文中吸取指导思想和建议,然后自己实际做各个硬...

CV_Autobot的博客 391

轻量级模型设计与部署总结(关键字定义/架构理解/高效CNN)

点击下方卡片,关注“自动驾驶之心”公众号ADAS巨卷干货,即可获取点击进入→自动驾驶之心【模型部署】技术交流群后台回复【模型部署工程】获取基于TensorRT的分类、检测任务的部署源码!前言一些关键字定义及理解计算量 FLOPs内存访问代价 MACGPU 内存带宽Latency and ThroughputVolatile GPU Util英伟达 GPU 架构CNN 架构的理解手动设计高效 CNN...

CV_Autobot的博客 1911
上一篇: 深度学习与计算机视觉教程(9) | 典型CNN架构 (Alexnet,VGG,Googlenet,Restnet等)(CV通关指南·完结)
下一篇: 深度学习与计算机视觉教程(11) | 循环神经网络及视觉应用(CV通关指南·完结)
ShowMeAI
博客等级 码龄5年 6514粉丝 672原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

ShowMeAI

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

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

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

打赏作者

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

抵扣说明:

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

余额充值