常用注意力机制 SENet CBAM ECA

在处理脑电信号时通常会用到一些注意力机制,来给不同的脑电通道不同的权重,进而体现出不同脑电通道在分类中的重要性。下面整理几种常见的通道注意力机制,方便以后查阅。

常用注意力机制 SENet CBAM ECA

  • 注意力机制
  • SENet(Squeeze-and-Excitation Network)
    • SENet原理
    • SENet Python实现
  • CBAM(Convolutional Block Attention Module)
    • CBAM原理
    • CBAM Python实现
  • ECA(Efficient Channel Attention)
    • ECA原理
    • ECA Python实现
  • 参考资料

注意力机制

注意力机制最初是为了解决自然语言处理(NLP)任务中的问题而提出的,它使得模型能够在处理序列数据时动态地关注不同位置的信息。

注意力机制的核心思想是根据输入数据的不同部分,动态地调整模型的注意力,从而更加关注对当前任务有用的信息。

SENet(Squeeze-and-Excitation Network)

SENet原理

论文下载地址:https://arxiv.org/pdf/1709.01507v2.pdf

SENet(Squeeze-and-Excitation Network)是一种基于通道的注意力机制,旨在学习通道权重以增强特征图中每个通道的重要性。

SENet通道注意力机制的流程:

  1. Squeeze:对于每个通道,计算其全局平均池化,得到一个通道特征值。这相当于将每个通道的空间信息进行压缩。

  2. Excitation:使用一个全连接层来学习通道权重,该全连接层包含一个Sigmoid激活函数,用于生成一个通道注意力向量。这个注意力向量表示每个通道的重要性。

  3. 将学习到的通道注意力向量乘以原始特征图,得到加权后的特征图,增强了每个通道的重要性。

在这里插入图片描述
以下是两个SENet的典型应用结构:

在这里插入图片描述

在这里插入图片描述

SENet Python实现

import torch
import torch.nn as nn#%% 用于图像处理时的代码
class SEBlock(nn.Module):def __init__(self, in_channels, reduction=16):super(SEBlock, self).__init__()self.avg_pool = nn.AdaptiveAvgPool2d(1)self.fc = nn.Sequential(nn.Linear(in_channels, in_channels // reduction),nn.ReLU(inplace=True),nn.Linear(in_channels // reduction, in_channels),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#%% 用于脑电处理时的代码,计算通道注意力
class SEBlock(nn.Module):def __init__(self, in_channels, reduction=16):super(SEBlock, self).__init__()self.avg_pool = nn.AdaptiveAvgPool1d(1) # 在时间维度上压缩信号self.fc = nn.Sequential(nn.Linear(in_channels, in_channels // reduction),nn.ReLU(inplace=True),nn.Linear(in_channels // reduction, in_channels),nn.Sigmoid())def forward(self, x):b, c, eegChan, _ = x.size() # (b, c, eegChan, samples)y = torch.squeeze(self.avg_pool(x)) # (b, c, eegChan)y = torch.unsqueeze(self.fc(y), dim=3) # (b, c, eegChan, 1)return x * y

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/48705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL相关知识

一、什么是数据库? 数据库(Database,简称DB)概念: 长期存放在计算机内,有组织、可共享的大量数据的集合,是一个 数据“仓库”。 二、数据库的特点: 1.结构化:数据在数…

【leetcode】二分查找本质

标题:【leetcode】二分查找本质 水墨不写bug 正文开始:(点击题目标题转跳到OJ) 目录 (O)前言* (一) 在排序数组中查找元素的第一个和最后一个位置 思路详解: 参考代…

Python 爬虫 获取Instagram用户数据信息 Instagram API接口

爬取instagram用户主页数据信息 详细采集页面如下 https://www.instagram.com/abdallhdev/?hlen 请求API http://api.xxxx.com/ins/profile/username?usernameabdallhdev&tokentest 请求参数 返回示例 联系我们(更多接口详见主页专栏) 更多精彩…

Redis--12--1--分布式锁---java

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Redis与分布式锁Jedis实现1.RedisConfig2.RedisDistLock3.应用4.加上看门狗逻辑 RedisDistLockWithDog redisson实现1.依赖2.代码 Redis与分布式锁 Jedis实现 1.Re…

VScode通过Graphviz插件和dot文件绘制层次图,导出svg

1、安装插件 在VScode中安装Graphviz Interactive Preview插件,参考。 2、创建dot文件 在本地创建一个后缀为dot的文件,如test.dot,并写入以下内容: digraph testGraph {label "层次图";node [shape square; widt…

一文读懂英伟达A800的性能及应用场景

随着人工智能(AI)和高性能计算(HPC)领域的快速发展,对处理器的性能要求日益提高。英伟达(NVIDIA)作为全球领先的图形处理器(GPU)和人工智能技术公司,不断推出…

全国区块链职业技能大赛国赛考题区块链产品需求分析与方案设计

任务1-1:区块链产品需求分析与方案设计 本任务需要依据项目背景完成需求分析与方案设计,具体要求如下: 依据给定区块链食品溯源系统的业务架构图,对考题进行业务分析,尽可能多的去考虑一个业务系统所需要的模块,使用Visio或思维导图工具展现本系统的基本设计概念和处理流…

python基础语法 007 文件操作-2文件支持模式文件的内置函数

1.3 文件支持的模式 模式含义ropen a file for reading(default)wopen a file for writing,creates a new file if it does not exist or truncates the file if it exists x open a file foe exclusive creation. if the file already exists, the operation fails.独创模式&…

约束

概述 概念 约束是作用于表中字段上的规则,用于限制存储在表中的数据。 目的 保证数据库中数据的正确、有效性和完整性。 分类 【注意】约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。 约束演示 根据需求,完成表结构的…

Docker核心技术:应用架构演进

云原生学习路线导航页(持续更新中) 本文是 Docker核心技术 系列文章:应用架构演进,其他文章快捷链接如下: 应用架构演进(本文)容器技术要解决哪些问题Docker的基本使用Docker是如何实现的 1.1.架…

blender使用(三)常用建模操作及修改器

1,挤出图形 tab编辑模式,选中一个点/线/面,按键E,可以挤出对应的图形。选中点会挤出一条线,线会挤出一个面,面挤出体 2,倒角 选中一个边后,ctrlB ,拖动鼠标是倒角范围&am…

数据结构 day3

目录 思维导图: 学习内容: 1. 顺序表 1.1 概念 1.2 有关顺序表的操作 1.2.1 创建顺序表 1.2.2 顺序表判空和判断满 1.2.3 向顺序表中添加元素 1.2.4 遍历顺序表 1.2.5 顺序表按位置进行插入元素 1.2.6 顺序表任意位置删除元素 1.2.7 按值进…

智能取纸机,帮助移动公厕,无人值守降低运营成本

在快节奏的城市生活中,移动公厕作为临时性或应急性的公共卫生设施,扮演着不可或缺的角色。然而,传统移动公厕的管理面临着诸多挑战,尤其是纸巾供应与使用效率问题。近年来,智能取纸机的出现,为移动公厕的管…

好玩新游:辛特堡传说中文免费下载,Dungeons of Hinterberg 游戏分享

在游戏中,你将扮演Luisa,一个被现实生活拖得疲惫不堪的法律实习生。她决定暂时远离快节奏的公司生活,踏上征服辛特堡地下城的旅程…她会在第一天就被击退,还是能成为顶级猎魔人呢?只有一个办法可以找到答案... 体验刺激…

《Milvus Cloud向量数据库指南》——SPLADE:基于BERT的Learned稀疏向量技术深度解析

在自然语言处理(NLP)领域,随着深度学习技术的飞速发展,预训练语言模型如BERT(Bidirectional Encoder Representations from Transformers)已成为推动研究与应用进步的重要基石。BERT通过其强大的上下文感知能力,在多项NLP任务中取得了显著成效,尤其是在文本表示和语义理…

昇思25天学习打卡营第20天| GAN图像生成

GAN是一种特别酷的机器学习模型,它由两个部分组成:生成器和判别器。生成器的任务是制造假的图像,而判别器则要判断图像是真是假。这俩就像是在玩一个捉迷藏的游戏,生成器越做越好,判别器也越来越聪明。 想象一下&…

光耦合器技术的实际应用

光耦合器也称为光隔离器,是现代电子产品中的关键组件,可确保电路不同部分之间的信号完整性和隔离。它们使用光来传输电信号,提供电气隔离和抗噪性。 结构和功能 光耦合器通常由以下部分组成: 1.LED(发光二极管&#…

yolov5进行识别安全帽

进行毕业设计 下载yolov5使用按照教程来进行就行注意事项(有必要看看)效果 总结 下载yolov5 地址是:https://github.com/ultralytics/yolov5 使用按照教程来进行就行 这里简单说一下: 下载需要的命令: pip install -…

前端vue框架的项目文件创建及常见Vue指令运用

前言 本文介绍前端Vue框架,先从npm工具创建的Vue项目开始,对项目结构的一些文件用途进行说明,随后对Vue文件编写所用的两种风格(选项式API和组合式API风格)做了区分,同时对编写代码中常见的生命周期钩子函…

【OpenREALM学习笔记:14】单目视觉SLAM方法在UAV影像上重建三维地形的思考

最近在学习SLAM技术与测绘三维影像重建的相关知识,结合自己的感受,撰写一下对于单目视觉SLAM利用无人机影像重建三维地形的一些看法。 1. 单目视觉SLAM系统在三维地形重建中所面临的挑战有哪些? 单目视觉SLAM众所周知的一个问题是&#xff…