再看SENet

SENet(Squeeze-and-Excitation Networks)

再看SENet_第1张图片

先做一个全局平均池化Global Average Pooling,输出的1x1xC的数据经过两级全连接限制到[0,1]范围内,再把这个值作为scale乘到U的C个通道上,作为下一级的输入数据。

第一个全连接把C个通道压缩成C/r个通道来降低计算量后面带Relu,第二个全连接再回复为C个通道后面跟了sigmoid,r是压缩比例。

再看SENet_第2张图片

SENet与ResNet和Inception结合

keras代码

squeeze = GlobalAveragePooling2D()(x)
        
excitation = Dense(units=out_dim // self.ratio)(squeeze)
excitation = self.activation(excitation)
excitation = Dense(units=out_dim)(excitation)
excitation = self.activation(excitation, 'sigmoid')
excitation = Reshape((1,1,out_dim))(excitation)
        
scale = multiply([x,excitation])

 

你可能感兴趣的:(再看SENet)