【网络结构】轻量级网络模型shuffleNet

推荐一下看到的比较好的文章:

『高性能模型』轻量级网络ShuffleNet_v1及v2https://www.cnblogs.com/hellcat/p/10318630.html

CNN模型之ShuffleNet:https://zhuanlan.zhihu.com/p/32304419

轻量化网络ShuffleNet MobileNet v1/v2 解析:https://zhuanlan.zhihu.com/p/35405071

纵览轻量化卷积神经网络:SqueezeNet、MobileNet、ShuffleNet、Xception:https://zhuanlan.zhihu.com/p/32746221

 

个人理解与MoblieNet之间的区别在于分组卷积后的操作

MobileNet包括depthwise convolution和pointwise convolution两部分,depthwise convolution将输入特征分组卷积,减少每组卷积特征通道数,从而减少参数量和计算量;pointwise convolution表示将分组后的卷积特征整合。

ShuffleNet顾名思义就是有重组的过程,具体是在分组卷积特征提取后不同分组特征整合部分,不再是采用MobileNet中的1*1卷积而是采用打乱整合的思想。

这个打乱整合也不是真的随机打乱,而是有规律的。例如分组卷积得到特征为N*C,N是分组数,C是每个分组的通道数,这时特征数:batch_size*(N*C)*W*H,将N*C维度拆分为N*C数组,这时特征数batch_size * N *C * W *H(这里是五维),再对N*C进行转置得到C*N矩阵,最后reshape回N*C。

import numpy as np
inputs=np.arange(15).reshape(3, 5)
input_t = np.transpose(inputs)
output = input_t.reshape(15)
 print(inputs)
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

print(input_t)
[[ 0  5 10]
 [ 1  6 11]
 [ 2  7 12]
 [ 3  8 13]
 [ 4  9 14]]

print(output)
[ 0  5 10  1  6 11  2  7 12  3  8 13  4  9 14]

这里N=3,表示分3组,C=5,表示每组5通道,输出仍是3*5,达到了分组特征之间交换的目的。

相比MobileNet中的1*1*N*C卷积,ShuffleNet减少了计算量和参数量。

因为比较懒,还没实现,其中遇到的问题还不知道,希望交流指正,由于硬件条件不允许,想试一试显存小的网络

有个疑问,轻量级网络结构对小数据集友好么

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值