天津太原地区的网站建设公司,哪家提供专业的APP定制服务?
摘要:网站建设公司天津,太原app制作公司,seo网站案例,淘宝客网站备案教程1.SENet SENet属于通道注意力机制。2017年提出,是imageNet最后的冠军 SENet采用的方法是对于特征层赋予权值。 重
网站建设公司天津,太原app制作公司,seo网站案例,淘宝客网站备案教程1.SENet
SENet属于通道注意力机制。2017年提出#xff0c;是imageNet最后的冠军
SENet采用的方法是对于特征层赋予权值。
重点在于如何赋权
1.将输入信息的所有通道平均池化。 2.平均池化后进行两次全连接#xff0c;第一次全连接链接的神经元较少#xff0c;第二次全连…1.SENet
SENet属于通道注意力机制。2017年提出是imageNet最后的冠军
SENet采用的方法是对于特征层赋予权值。
重点在于如何赋权
1.将输入信息的所有通道平均池化。 2.平均池化后进行两次全连接第一次全连接链接的神经元较少第二次全连接神经元数和通道数一致 3.将Sigmoid的值固定为0-1之间 4.将权值和特征层相乘。 import torch
import torch.nn as nn
import mathclass se_block(nn.Module):def __init__(self, channel, ratio16):super(se_block, self).__init__()self.avg_pool nn.AdaptiveAvgPool2d(1)self.fc nn.Sequential(nn.Linear(channel, channel // ratio, biasFalse),nn.ReLU(inplaceTrue),nn.Linear(channel // ratio, channel, biasFalse),nn.Sigmoid())def forward(self, x):b, c, _, _ x.size()y self.avg_pool(x).view(b, c)y self.fc(y).view(b, c, 1, 1)return x * y
2.ECANet
细心的人会发现全连接其实是一个非常耗费算力的东西对于边缘设备的压力非常大所以ECANet觉得SENet并不需要那么多的全连接我们直接在GAP后做一维卷积而后取sigmoid为0-1来获取权值即可。
ECANet认为SE的全通道信息捕获是多此一举而卷积就有很好的跨通道信息获取能力。
class eca_block(nn.Module):def __init__(self, channel, b1, gamma2):super(eca_block, self).__init__()kernel_size int(abs((math.log(channel, 2) b) / gamma))kernel_size kernel_size if kernel_size % 2 else kernel_size 1self.avg_pool nn.AdaptiveAvgPool2d(1)self.conv nn.Conv1d(1, 1, kernel_sizekernel_size, padding(kernel_size - 1) // 2, biasFalse) self.sigmoid nn.Sigmoid()def forward(self, x):y self.avg_pool(x)y self.conv(y.squeeze(-1).transpose(-1, -2)).transpose(-1, -2).unsqueeze(-1)y self.sigmoid(y)return x * y.expand_as(x)
4.GCNet
GCNet是我们项目的模型中使用的一种注意力机制
GCNet主要借鉴了SENet和NLNet的优点主要基于NLNet把NLNet的计算量削减了数倍
先看他是怎么用NLNet的
NLNet原公式 改进后的NLNet公式
改进的区别就是去掉了Wz系数。
Wz系数的削减主要是对图像中的观察得出的创意。 作者说attention map在不同位置上计算的结果几乎一致那么我们只需要计算一次然后共享attention map应该也可以获得很好的效果并且计算量可以下降到1/W*H。
Simple NL Block和NL Block的结构对比如图所示并且经过文章的实验表明简化后的性能与原本的性能相当。
接着作者基于S-NLNet和SENet的有点提出了GCNet
(1) 相比于SNLSNL中的transform的1x1卷积在res5中是2048x1x1x2048其计算量较大所以借鉴SE的方法加入压缩因子为了更好的优化还加入了layernorm。
