深度学习之SENet

SENet是17年的分类赛的冠军(错误率最低),上个星期跑了一下,所以做个总结。

SENet

SENet是一种网络层之间可以安插的block,比如可以安插在ResNet、Inception中。

它的核心就是:
对feature map,抑制没用的channel,增强有用的channel。而抑制和增强则是通过训练(0,1)之间的权重来完成。

具体如下:

以SE-Inception为例,首先对HxWxC的feature map进行global pooling,得到1x1xC的feature map。然后接两层FC,最后仍然输出1x1xC。这里C个channel,每个channel存放着(0,1)之间的weight。

weight越大,代表原feature map中对应channel的信息越有用,weight越小,代表越渣。

我们将这些weights分别与原feature map上的值相乘,得到新的feature map。

插播一条SE-ResNet的:

流程图为:
深度学习之SENet_第1张图片

使用体验:

训练比以往慢。
至于准确率,暂时没有提升。可能是我没发挥出它的性能。

你可能感兴趣的:(深度学习)