【Attention】SKAttention

SKAttention选择核注意力

标题:SKAttention

期刊:IEEE2019

代码: https://github.com/implus/SKNet

简介:

  • 动机:增大感受野来提升性能、多尺度信息聚合方式
  • 解决的问题:自适应调整感受野大小
  • 创新性:提出选择性内核(SK)卷积softmax来进行自适应选择

模型结构

在这里插入图片描述

模型代码

import numpy as np
import torch
from torch import nn
from torch.nn import init
from collections import OrderedDict# Selective Kernel Attention
class SKAttention(nn.Module):def __init__(self, channel=512, kernels=[1, 3, 5, 7], reduction=16, group=1, L=32):super().__init__()# 中间维度d的计算self.d = max(L, channel // reduction)# 多分支卷积层(使用不同尺寸的卷积核)self.convs = nn.ModuleList([])for k in kernels:self.convs.append(nn.Sequential(OrderedDict([# 分组卷积(输入输出通道数相同,保持维度)('conv', nn.Conv2d(channel, channel, kernel_size=k, padding=k // 2, groups=group)),# 批归一化(保持维度)  ('bn', nn.BatchNorm2d(channel)),# ReLU激活函数('relu', nn.ReLU())])))# # 通道压缩层(全连接层)self.fc = nn.Linear(channel, self.d)# 多分支注意力权重生成层self.fcs = nn.ModuleList([])for i in range(len(kernels)):self.fcs.append(nn.Linear(self.d, channel))# 注意力权重归一化(沿分支维度softmax)self.softmax = nn.Softmax(dim=0)def forward(self, x):# 输入x形状: [B, C, H, W]bs, c, _, _ = x.size() # 获取输入的batch_size, 通道数, 高度, 宽度conv_outs = []### Split阶段:多分支特征提取for conv in self.convs:conv_outs.append(conv(x)) # 每个分支输出: [B, C, H, W]feats = torch.stack(conv_outs, 0)  # 堆叠后形状: [K, B, C, H, W](K是kernel数量)### Fuse阶段:特征融合U = sum(conv_outs) # 逐元素相加 → [B, C, H, W]### Channel Reduction:通道压缩S = U.mean(-1).mean(-1)  # 空间全局平均池化 → [B, C,1,1]Z = self.fc(S)   # 全连接层降维 → [B, d](d=self.d)### 计算注意力权重weights = []for fc in self.fcs: #  每个kernel对应一个全连接层weight = fc(Z) # 全连接层输出 → [B, C]weights.append(weight.view(bs, c, 1, 1))  # 调整形状 → [B, C, 1, 1]attention_weughts = torch.stack(weights, 0)   # 堆叠 → [K, B, C, 1, 1]attention_weughts = self.softmax(attention_weughts)  # 沿K维度softmax归一化### fuseV = (attention_weughts * feats).sum(0) # 加权求和 → [B, C, H, W]return Vif __name__ == '__main__':input = torch.rand(1,64,256,256).cuda()model = SKAttention(channel=64, reduction=8).cuda()output = model (input)print('input_size:', input.size())print('output_size:', output.size())print("最大内存占用:", torch.cuda.max_memory_allocated() // 1024 // 1024, "MB")

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

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

相关文章

解决Popwindow宽高的问题。

问题 在使用Popwindow进行自定义的过程中&#xff0c;需要设置popwindow的宽高。但是宽高很多时候容易出问题。比如下面的例子。 布局文件如下 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.andr…

MySQL数据库精研之旅第二期:库操作的深度探索

专栏&#xff1a;MySQL数据库成长记 个人主页&#xff1a;手握风云 目录 一、查看数据库 二、创建数据库 2.1. 语法 2.2. 示例 三、字符集编码和校验(排序)规则 3.1. 查看数据库支持的字符集编码 3.2. 查看数据库支持的排序规则 3.3. 不同的字串集与排序规则对数据库的…

基于deepseek的智能语音客服【第四讲】封装milvus数据库连接池封装

通过工厂模式创建链接 static {// 创建连接池工厂BasePooledObjectFactory<MilvusServiceClient> factory new BasePooledObjectFactory<MilvusServiceClient>() {Overridepublic MilvusServiceClient create() throws Exception {return new MilvusServiceClient…

STM32基础教程——定时器

前言 TIM定时器&#xff08;Timer&#xff09;:STM32的TIM定时器是一种功能强大的外设模块&#xff0c;通过时基单元&#xff08;包含预分频器、计数器和自动重载寄存器&#xff09;实现精准定时和计数功能。其核心原理是&#xff1a;内部时钟&#xff08;CK_INT&#xff09;或…

OpenCV旋转估计(4)生成一个字符串表示的匹配图函数 matchesGraphAsString()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 matchesGraphAsString 函数是OpenCV库中的一部分&#xff0c;位于 cv::detail 命名空间下。这个函数的主要作用是生成一个字符串表示的匹配图&am…

Android 根据Url使用Retrofit框架进行文件下载

一、背景 根据后端返回的url下载地址,去执行文件下载&#xff0c;将文件保存到SD卡。这里使用Retrofit网络框架。 二、代码实现 2.1、定义一个DownloadFileService interface DownloadFileService {StreamingGETsuspend fun downloadFile(Url fileUrl: String):ResponseBody…

NVMe(Non-Volatile Memory Express)详解

一、NVMe的定义与核心特性 NVMe&#xff08;非易失性内存主机控制器接口规范&#xff09;是一种 基于PCIe总线的高性能存储协议&#xff0c;专为固态硬盘&#xff08;SSD&#xff09;设计&#xff0c;旨在替代传统的AHCI协议&#xff08;如SATA&#xff09;。其核心特性包括&a…

机器学习——KNN超参数

sklearn.model_selection.GridSearchCV 是 scikit-learn 中用于超参数调优的核心工具&#xff0c;通过结合交叉验证和网格搜索实现模型参数的自动化优化。以下是详细介绍&#xff1a; 一、功能概述 GridSearchCV 在指定参数网格上穷举所有可能的超参数组合&#xff0c;通过交叉…

稳定运行的以Oracle NoSQL数据库为数据源和目标的ETL性能变差时提高性能方法和步骤

提高基于Oracle NoSQL数据库的ETL&#xff08;提取、转换、加载&#xff09;性能时&#xff0c;主要从多个角度进行优化。 提高基于Oracle NoSQL数据库的ETL性能需要综合考虑多个方面&#xff0c;关键是减少不必要的I/O操作、优化数据转换和加载过程、合理配置Oracle NoSQL数据…

Compose 原理解析

Compose 的组件都是放在 setContent() 之后才能显示的&#xff0c;那需要先看看这个函数的作用。 先看 ComponentActivity 的扩展函数 setContent()&#xff1a; /*** 将给定的可组合项合成到给定的 Activity 中。[content] 将成为给定 Activity 的根视图。* 这大致相当于使用…

细说卫星导航:测距定位原理

测距定位原理 1. 伪距测量技术 核心原理&#xff1a;卫星发射信号&#xff0c;用户接收并记录传播时间&#xff0c;乘以光速得到距离&#xff08;伪距&#xff09;。 技术细节&#xff1a; 信号传播路径分析 信号结构&#xff1a; 卫星信号包含三部分&#xff1a; 载波&…

19921 多重背包

19921 多重背包 ⭐️难度&#xff1a;中等 &#x1f31f;考点&#xff1a;动态规划、背包问题 &#x1f4d6; &#x1f4da; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public class Main {static int N …

js逆向之断点调试

1.XHR/提取断点用法 当刷新页面时候&#xff0c;有大量请求&#xff0c;并且你无法定位参数信息的时候&#xff0c;或者参数被混淆无法搜到&#xff0c;可以用该方法&#xff0c;该方法是会捕获所有请求连接&#xff0c;然后我们通过连接过滤出自己想要的请求&#xff0c;然后…

基于32单片机的无人机直流电机闭环调速系统设计

标题:基于32单片机的无人机直流电机闭环调速系统设计 内容:1.摘要 本文针对无人机直流电机调速需求&#xff0c;设计了基于32单片机的无人机直流电机闭环调速系统。背景在于无人机应用场景不断拓展&#xff0c;对电机调速精度和稳定性要求日益提高。目的是开发一套高精度、响应…

如何用Deepseek制作流程图?

使用Deepseek制作流程图&#xff0c;本质上是让AI根据你的需求&#xff0c;生成相关流程图的代码&#xff0c;然后在流程图编辑器中渲染&#xff0c;类似于Python一样&#xff0c;ChatGPT可以生成代码&#xff0c;但仍需在IDE中执行。 你知道绘制流程图最高效的工具是什么吗&a…

嵌入式硬件工程师从小白到入门-原理图(三)

原理图绘制从小白到入门&#xff1a;知识点速通与注意事项 一、原理图绘制基础概念 什么是原理图&#xff1f; 原理图&#xff08;Schematic&#xff09;是电子电路的图形化表示&#xff0c;展示元器件之间的电气连接关系&#xff0c;是硬件设计的蓝图。 核心元素 元器件符号&…

WSL 环境桥接与雷达通信配置笔记

作者: DWDROME 维护时间: 2025-03-22 参考文章:Windows子系统&#xff08;WSL&#xff09;通过桥接网络实现被外部局域网主机直接访问 WSL 环境桥接与雷达通信配置笔记 环境说明 Windows 11 专业版&#xff08;启用 Hyper-V&#xff09;WSL2 Ubuntu 20.04物理网线&#xff08…

ToDesk云电脑各类鼠标有什么区别?虚拟/3D/游戏鼠标等各有利

不知道各位在使用ToDesk云电脑的时候是否是有注意到&#xff0c;这其中的鼠标竟有多种名称、多种模式可以选&#xff0c;比如锁定鼠标、3D鼠标、游戏鼠标这几项。 那么这些不同名称的鼠标都代表什么意思呐&#xff0c;又应该怎么选择、怎么用呐&#xff1f;本篇内容小编就为大…

DeepBI:重构流量逻辑,助力亚马逊广告实现高效流量增长

在日益激烈的跨境电商竞争环境中&#xff0c;广告投放早已从“粗放撒网”走向“精细化运营”。尤其是在亚马逊这样一个成熟且竞争白热化的平台&#xff0c;如何在广告预算有限的前提下实现高效曝光、精准触达、稳定转化&#xff0c;成为众多卖家和运营团队面临的核心挑战。 De…

java项目之基于ssm的毕业论文管理系统(源码+文档)

项目简介 毕业论文管理系统实现了以下功能&#xff1a; 本毕业论文管理系统主要实现的功能模块包括学生模块、导师模块和管理员模块三大部分&#xff0c;具体功能分析如下&#xff1a; &#xff08;1&#xff09;导师功能模块&#xff1a;导师注册登录后主要功能模块包括个人…