MixNet(含pytorch代码解析及相关轻量级模型对比)

最近相关项目实践了MixNet网络,最终取得的效果不错,但是收敛的过程相对有些缓慢,具体原因还在分析当中,现将相关知识及代码解析如下。

如下主要包括3个部分,1是MixNet的原理知识解析(整理自网络),2是自己对于相应核心代码解析,3相关轻量级模型比较。

1. MixNet

参考:https://www.cnblogs.com/dengshunge/p/11442805.html

其主要创新点是,研究不同卷积核尺寸的影响和观察到组合不同尺寸的卷积核能提高准确率。作者将混合了不同尺寸的卷积核的卷积操作命名为MDConv,并将其使用在深度可分离卷积中,能提高的MobileNet的准确率。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如上从左到右的点分别表示卷积核的尺寸由33增大到1313.

基于可分离卷积,又引入了分组卷积,对于不同组的通道分别执行不同卷积核尺寸的可分离卷积。

与inception的异同:都引入了不同的卷积核尺寸,但是其是基于可分离卷积的操作;
与xception的异同:都基于可分离卷积,但是其引入了不同的卷积核尺寸进行分组操作。

2. Mixnet网络模型的pytorch代码:

在这里插入图片描述
如forward函数所示,两头为基本的卷积操作conv及head_conv,中间的layers为MixBlock堆叠:mixblock具体如下:
在这里插入图片描述
如forward所示,其主要由mdconv、SE模块、project_conv及跳过连接组成;
其具体结构如下,
在这里插入图片描述
先split每个通道,执行各自可分离卷积,最后结果再cat在一起。
在这里插入图片描述
深度可分离卷积通过Conv2d中的group=in_channels,来控制逐通道的卷积;
在这里插入图片描述
在这里插入图片描述

3. 相关轻量级模型对比

参考:https://www.sohu.com/a/215356462_465975
回顾一下近来的轻量级网络,包括:
在这里插入图片描述
1.SqueezeNet主要引入了Fire module,其结构如下:
在这里插入图片描述
先使用11的卷积进行通道压缩,然后分别进行11和3*3的卷积,最后在concat一起。这里的思想跟如上讲的inceptionv3的方法是一致的。

2.MobileNet主要引入了深度可分离卷积depth-wise separable convolution,在如上的xception中也讲到了这一点,主要是将标准卷积分为两步:一是逐通道的卷积Depth-wise convolution,二是最后将所有通道的卷积结果再次通过1*1卷积进行组合Pointwise convolution。

3.ShuffleNet
shuffle 具体来说是 channel shuffle,是将各部分的 feature map 的 channel 进行有序的打乱,构成新的 feature map,以解决 group convolution 带来的「信息流通不畅」问题。(如上MobileNet 是用 point-wise convolution 解决的这个问题)
对比一下 MobileNet,采用 shuffle 替换掉 11 卷积,这样可以减少权值参数,而且是减少大量权值参数,因为在 MobileNet 中,11 卷积层有较多的卷积核,并且计算量巨大。
在这里插入图片描述
Channel shuffle 的操作非常简单,接下来看看 ShuffleNet,ShuffleNet 借鉴了 Resnet 的思想,从基本的 resnet 的 bottleneck unit 逐步演变得到 ShuffleNet 的 bottleneck unit,然后堆叠的使用 ShuffleNet bottleneck unit 获得 ShuffleNet;

下图展示了 ShuffleNet unit 的演化过程:
在这里插入图片描述
如上图a为深度可分离卷积DWConv;b使用了分组卷积GConv,并在第一个分组卷积后面加入了channel shuffle;c在旁路使用了平均池化AVG,来降低图像分辨率,最后使用了concat而不是add,用来弥补分辨率的损失。

4.Xception这一块,在上一篇文章与inception一同进行了讲解及代码分析。
先用 11 卷积核对各通道之间(cross-channel)进行卷积,然后再分别使用33卷积核对各通道进行卷积。详见:从Inception到Xception(含网络模型pytorch代码解析)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值