【2022新生学习】第四周要点

1、 深度学习的移动端应用成为研究热点

2017年开始,移动端网络开始引起关注,一直到现在,如何在手机端高效应用CNN,仍然是业内研究热点。

2、MobileNet中的深度可分离卷积

MobileNet网络是由google团队在2017年提出的,专注于移动端或者嵌入 式设备中的轻量级CNN网络。相比传统卷积神经网络,在准确率小幅降 低的前提下大大减少模型参数与运算量。(相比VGG16准确率减少了0.9%, 但模型参数只有VGG的1/32)

请添加图片描述

Depth-wise 卷积影响力特别大,因为计算快速、效果发了,在最近的各类论文里会经常看到它。大家务必熟练掌握。

MobileNetV2 和 V3 影响力相对较小,尤其是 ReLU6 ,后续的工作基本上没有见过了。V3的亮点其实是使用了 SE 模块。

3、Squeeze-and-Excitation Networks

SENet 影响力非常大,在最近的各类论文里都能看到它的影子,核心思想就是 self-attention,来自于自然语言处理,这个我们以后再介绍。这种模块叫做 plug-and-play(即插即用),想想为什么?

SE模块的结构如下图所示,核心是一个通道上的 reweight,给各个通道分配权重,实现特征的强化。首先使用 global average pooling 进行全局池化成一维向量(这里选择 max pooling 可不可以?),然后是两个全连接层,先做 1/16 的压缩(为什么是1/16?),然后再恢复成原来维度。最后使用 sigmoid 获得权重(gating),对原来特征进行加权。这个模块的代码实现也非常简单,不再多说。

请添加图片描述

4、HybridSN 每次分类的结果都不一样,为什么?

正常来看,只要网络训练完成,模型就固定了,测试时的结果每次应该是完全一样的。但是这个代码每次测试时分类的结果都不一样。

因为网络中使用了 Dropout,训练时要随机丢弃一些节点,但是测试时仍然在丢弃,导致准确率不稳定。因此,要使结果稳定,需要在训练前添加代码:net.train(),测试前添加代码:net.eval()。详细可参考陈半仙的博客:http://t.zoukankan.com/cch-EX-p-13495002.html

5、其它 plug-and-play 模块

可以参考FightingCV 维护的 github 代码仓库:https://github.com/xmu-xiaoma666/External-Attention-pytorch

里面有非常多的即插即用模块,需要重点掌握的是:non-local,SKNet,CBAM,ECA-Net,DANet 等等。

这里我开个头,大家思考两个问题:

1、SENet里面的全局池化,使用的 average pooling,是不是可以使用 max pooling?

2、对于CHW的矩阵,原来是将 HW 维度池化,对C进行 reweight。是不是可以对其它的维度进行 reweight ?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值