SENET通道注意力机制源代码+注释

简介: SENET通道注意力机制源代码+注释
import torch
import torch.nn as nn
class SENET(nn.Module):
    def __init__(self, channel, r=0.5):  # channel为输入的维度, r为全连接层缩放比例->控制中间层个数
        super(SENET, self).__init__()
        # 全局均值池化
        self.global_avg_pool = nn.AdaptiveAvgPool2d(1)
        # 全连接层
        self.fc = nn.Sequential(
            nn.Linear(channel, int(channel * r)),  # int(channel * r)取整数   #通道压缩
            nn.ReLU(),          #relu激活函数进行激活 ()激励
            nn.Linear(int(channel * r), channel),     #展开
            nn.Sigmoid(),  #折算成0到1之间的权重
        )
    def forward(self, x):
        # 对x进行分支计算权重, 进行全局均值池化
        branch = self.global_avg_pool(x)   #前向传播先平均池化
        branch = branch.view(branch.size(0), -1)   #展开
        # 全连接层得到权重
        weight = self.fc(branch)    #经过全连接得到权重
        # 将维度为b, c的weight, reshape成b, c, 1, 1 与 输入x 相乘 即乘以权重
        hi, wi = weight.shape
        weight = torch.reshape(weight, (hi, wi, 1, 1))
        # 乘积获得结果
        scale = weight * x    #weight为权重 x为输入的  输出结果
        return scale
# alexnet1.add_module("linear",nn.Linear(1000 , 10))
alexnet1 = SENET(channel = 3) #通道数等于输入图片的通道数
print(alexnet1)
test1 = torch.ones(64, 3, 120, 120)  #输入64batch  3通道 120*120的图片
test1 = alexnet1 (test1)
print(test1.shape)   #输出无变化


本人尝试将注意力机制作为trick加入传统的CNN卷积神经网络进行优化,后面会陆续公布相应的代码和经验  未完待续...........

相关文章
|
20天前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
RT-DETR改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
31 3
RT-DETR改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
|
21天前
|
机器学习/深度学习 计算机视觉 知识图谱
RT-DETR改进策略【Conv和Transformer】| 上下文转换器CoT 结合静态和动态上下文信息的注意力机制 (含二次创新)
RT-DETR改进策略【Conv和Transformer】| 上下文转换器CoT 结合静态和动态上下文信息的注意力机制 (含二次创新)
50 11
RT-DETR改进策略【Conv和Transformer】| 上下文转换器CoT 结合静态和动态上下文信息的注意力机制 (含二次创新)
|
25天前
|
机器学习/深度学习 计算机视觉 知识图谱
YOLOv11改进策略【Conv和Transformer】| 上下文转换器CoT 结合静态和动态上下文信息的注意力机制 (含二次创新C3k2)
YOLOv11改进策略【Conv和Transformer】| 上下文转换器CoT 结合静态和动态上下文信息的注意力机制 (含二次创新C3k2)
41 10
YOLOv11改进策略【Conv和Transformer】| 上下文转换器CoT 结合静态和动态上下文信息的注意力机制 (含二次创新C3k2)
|
21天前
|
计算机视觉
RT-DETR改进策略【卷积层】| 2024最新轻量级自适应提取模块 LAE 即插即用 保留局部信息和全局信息
RT-DETR改进策略【卷积层】| 2024最新轻量级自适应提取模块 LAE 即插即用 保留局部信息和全局信息
34 4
RT-DETR改进策略【卷积层】| 2024最新轻量级自适应提取模块 LAE 即插即用 保留局部信息和全局信息
|
22天前
|
机器学习/深度学习 计算机视觉 知识图谱
YOLOv11改进策略【注意力机制篇】| SENet V2 优化SE注意力机制,聚合通道和全局信息
YOLOv11改进策略【注意力机制篇】| SENet V2 优化SE注意力机制,聚合通道和全局信息
42 1
YOLOv11改进策略【注意力机制篇】| SENet V2 优化SE注意力机制,聚合通道和全局信息
|
22天前
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
YOLOv11改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
63 1
YOLOv11改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
|
22天前
|
机器学习/深度学习 资源调度 Java
YOLOv11改进策略【注意力机制篇】| 2024 SCI TOP FCAttention 即插即用注意力模块,增强局部和全局特征信息交互
YOLOv11改进策略【注意力机制篇】| 2024 SCI TOP FCAttention 即插即用注意力模块,增强局部和全局特征信息交互
54 1
YOLOv11改进策略【注意力机制篇】| 2024 SCI TOP FCAttention 即插即用注意力模块,增强局部和全局特征信息交互
|
25天前
|
计算机视觉
YOLOv11改进策略【卷积层】| 2024最新轻量级自适应提取模块 LAE 即插即用 保留局部信息和全局信息
YOLOv11改进策略【卷积层】| 2024最新轻量级自适应提取模块 LAE 即插即用 保留局部信息和全局信息
37 0
YOLOv11改进策略【卷积层】| 2024最新轻量级自适应提取模块 LAE 即插即用 保留局部信息和全局信息
|
4月前
|
机器学习/深度学习 自然语言处理 计算机视觉
【YOLOv11改进 - 注意力机制】CoTAttention:上下文转换器注意力
【YOLOv11改进 - 注意力机制】CoTAttention:上下文转换器注意力Contextual Transformer (CoT) 是一种新型的Transformer风格模块,通过3×3卷积对输入键进行上下文编码,生成静态上下文表示,并通过两个1×1卷积学习动态多头注意力矩阵,增强视觉表示能力。CoTNet将CoT块应用于ResNet架构中,替代3×3卷积,提升图像识别、目标检测和实例分割等任务的性能。源码可在GitHub获取。
【YOLOv11改进 - 注意力机制】CoTAttention:上下文转换器注意力
|
4月前
|
机器学习/深度学习 自然语言处理 语音技术
深入探索兼容性函数在注意力机制中的应用
深入探索兼容性函数在注意力机制中的应用