对于ChannelNet的一点理解

主要是为了个人理解,做个笔记

1、Pytorch代码

2、论文出处

3、详细介绍

这篇论文在2018年发出来,而ShuffleNet是从2017年由旷视发出来。起初了解shufflenet的提出,主要是为了解决分组卷积所导致的不同分组间信息无法交流的问题,所以采用了channel shuffle操作(主要采用转置)。今天看到ChannelNet,发现也是解决分组之间信息无法交流的问题(ps:以为和shufflenet一样,只是对分组进行shuffle。结果人家采用的是卷积进行shuffle,并且只是对通道进行卷积)。

进行channel-wise有什么好处呢?我们知道,MobileNet是采用深度可分离卷积和point-wise卷积来实现轻量化模型的设计。但是point-wise存在一个缺点,就是全连接。如图1。而Channel-Net呢,他采用channel-wise卷积(就是在通道上卷积,比如输入:N*C*W*W->N*1*C*W*H,然后利用nn.Conv3d()在通道维度上进行卷积,卷积核设置为(dc*1*1),code中Group Channel-Wise Convolutions之后给出的输出是:N*2*C*W*H),稀疏了全连接,这样就会在很大程度上降低参数量和计算量(论文中有给出的)。

图1:point-wise
图2:channel-shuffle
图3:channel-wise

 

 

 

posted @ 2022-11-15 17:25  九叶草  阅读(114)  评论(0编辑  收藏  举报