CondConv: Conditionally Parameterized Convolutions for Efficient Inference 论文阅读笔记

论文名称为:用于有效推理的有条件地参数化卷积。

读完摘要以后的个人想法:作者认为现在的神经网络卷积核的参数一致都保持一致而不发生变化,而作者提出的CondConv可以对每一张图片有特定的参数。作者认为自己提出的CondConv卷积一下能顶好几个卷积核的卷积,所以使用这个卷积能增加网络的大小和容量。

 对于这张图的解释:对于图1(a),PREV LAYER OUTPUT可以认为是输入的张量,ROUTE FN$W_1$ ,$W_2$,$W_3$每个卷积核的权重\alpha_1,$\alpha_2$,$\alpha_3$,经过COMBINE操作得到一个新的卷积核$CONV=\alpha_1W_1+\alpha_2W_2+\alpha_3W_3$来进行卷积,后面就是BatchNorm和ReLU。对于图1(b),与(a)不同的是这里对$W_1$ ,$W_2$,$W_3$卷积完之后得到的结果再与ROUTE FN权重进行乘积得到结果,这样会比(a)多增加了两次卷积操作。

对于ROUTE FN是如何计算的,下面就是每个卷积核参数权重如何计算的公式:

r(x)=Sigmoid(GlobalAveragePool(x)R)

首先假设有n个专家,这是认为决定的。 x代表输入数据格式为[C,H,W],GlobalAveragePool(x)的数据格式为[C,1,1],接下来与R相乘可以理解为经过一个全连接层得到数据格式为[n,1,1]的数据,之后经过sigmoid激活函数最后得到n个权重,这样便得到了ROUTE FN

想法:

读这篇论文时,读的时候云里雾里,给的图片示例看的不是很懂,然后在网上找到了CondConv的pytorch实现的代码(还好比较简单,环境也正好)调试了一下,最后对这篇论文的逻辑基本顺通了。

这篇的想法是想要通过几个卷积核的线性组合来实现针对特定数据的卷积核来实现有条件的参数化卷积。但感觉可能仅靠几个卷积核的线性组合不一定能得到适合输入数据的卷积核,还有在训练的时候是不是可以考虑让每个expert代表的卷积核之间尽量不同这样每个expert组合就更有多样性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值