每日Attention学习4——Spatial Attention Module

模块出处

[link] [code] [MM 21] Complementary Trilateral Decoder for Fast and Accurate Salient Object Detection


模块名称

Spatial Attention Module (SAM)


模块作用

空间注意力


模块结构

在这里插入图片描述


模块代码
import torch
import torch.nn as nn
import torch.nn.functional as Fdef conv3x3(in_planes, out_planes, stride=1, padding=1, dilation=1, bias=False):"3x3 convolution with padding"return nn.Conv2d(in_planes, out_planes, kernel_size=3, stride=stride, padding=padding, dilation=dilation, bias=bias)class SAM(nn.Module):def __init__(self, in_chan, out_chan):super(SAM, self).__init__()self.conv_atten = conv3x3(2, 1)self.conv = conv3x3(in_chan, out_chan)self.bn = nn.BatchNorm2d(out_chan)def forward(self, x):avg_out = torch.mean(x, dim=1, keepdim=True)max_out, _ = torch.max(x, dim=1, keepdim=True)atten = torch.cat([avg_out, max_out], dim=1)atten = torch.sigmoid(self.conv_atten(atten))out = torch.mul(x, atten)out = F.relu(self.bn(self.conv(out)), inplace=True)return outif __name__ == '__main__':x = torch.randn([1, 256, 16, 16])sam = SAM(in_chan=256, out_chan=64)out = sam(x)print(out.shape)  # 1, 64, 16, 16

原文表述

我们设计了空间注意力模块 (SAM),以有效地完善特征(见图 3)。我们首先沿通道轴使用平均和最大运算,分别生成两个不同的单通道空间图 S a v g S_{avg} Savg S m a x S_{max} Smax。然后,我们将它们连接起来,通过3×3卷积和sigmoid函数计算出空间注意力图。空间注意力图 M s a M_{sa} Msa可以通过元素级相乘从空间维度对特征重新加权。最后,细化后的特征被送入3×3卷积层,将通道压缩至64。

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

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

相关文章

搞了半天的HTTP-ONLY

一、问题 事情是这样的,我在测试服务器cookie时,要将键名为 onlintTag 的 value值 获取出来,一只没办法。 js一只报undefined,如下图 但是 请求头和响应体 都 显示了 cookie中 onlintTag的 value ,如下图 二、HTTP-ON…

代码复现|DataLoader类num_workers参数引发的进程问题

一、问题描述 记录一下:复现(Windows平台下,机器学习算法)代码过程中遇到的多进程问题,报错截图如下。 根据排查定位到代码出错位置349行。(背景介绍:logprog封装了dataloader类,本质…

基于 stable diffusion 制作上世纪90年代的游戏美术风格

1. 项目背景 目前游戏项目中出现美术产能不足的瓶颈,如果使用 midjourney 之类的第三方生成式人工智能产品生成美术素材的话,一方面需要将我们的美术资产投喂给第三方企业进行风格训练,有安全性上的风险,另一方面,第三…

F1C200S 添加韦根驱动笔记(设备树修改)

参考资料:linux开发笔记(buildroot 增加自己的开发板支持文件)-CSDN博客 首先需要有F1C200S开发板的原理图和buildroot 如果没有可以在我的资源里面下载。 参考上面的文章修改这个目录下的设备树即可。 /home/test/lc/buildroot/board/wi…

Android 开机启动模式源码分析

在机器关机情况下,长按Power键启动机器,如果这时机器低电,会提示低电,机器不会正常启动: 而代码如下: 如果不是低电,正常情况是可以启动的。 在关机情况下,插入USB,机…

【Python深度学习(第二版)(3)】初识神经网络之深度学习hello world

文章目录 一. 训练Keras中的MNIST数据集二. 工作流程1. 构建神经网络2. 准备图像数据3. 训练模型4. 利用模型进行预测5. (新数据上)评估模型精度 本节将首先给出一个神经网络示例,引出如下概念。了解完本节后,可以对神经网络在代码上的实现有一个整体的了…

python数据分析——pandas DataFrame基础知识2

参考资料:活用pandas库 1、分组方式 我们可以把分组计算看作“分割-应用-组合”(split-apply-combine)的过程。首先把数据分割成若干部分,然后把选择的函数(或计算)应用于各部分,最后把所有独立…

如何安全高效地进行分公司文件下发?

确保分公司文件下发过程中的保密性和安全性,是企业信息安全管理的重要组成部分。以下是一些关键步骤和最佳实践: 权限管理:确保只有授权的人员可以访问文件。使用权限管理系统来控制谁可以查看、编辑或下载文件。 加密传输:在文…

Linux|进程地址空间

Linux|内存地址空间 现象基本概念理解如何理解地址空间什么是划分区域&#xff1f;地址空间的理解为什么要有地址空间&#xff1f;如何进一步理解页表和写时拷贝如何理解虚拟地址 Linux真正的进程调度方案 现象 #include <stdio.h> #include <string.h> #include …

Java 区块链应用 | 割韭菜之假如K线涨跌可随意变动修改的实现

大家好&#xff0c;我是程序员大猩猩。 我一直在想&#xff0c;币圈这个行情时涨时跌&#xff0c;不断的割韭菜&#xff0c;不是由市场决定的&#xff01;而是由交易所直接输入一个数值后点击确定按钮而变化的&#xff0c;那么是不是很恐怖的行为。 为了验证这么一个想法&…

Java实现Excel导入和校验

文章目录 效果实现1,添加依赖2,实体类Member.javaMemberVO.java3,校验、监听器ValidationTool.javaExcelReadListener.java4,请求接口参考博文效果 输入:导入测试.xlsx postman调用实例: postman输出结果: 日志输出: 实现 1,添加依赖 easyexcel要去掉poi-ooxm…

Leetcode—295. 数据流的中位数【困难】

2024每日刷题&#xff08;132&#xff09; Leetcode—295. 数据流的中位数 实现代码 class MedianFinder { public:MedianFinder() {}void addNum(int num) {if(maxHeap.empty() || num < maxHeap.top()) {maxHeap.push(num);} else {minHeap.push(num);}if(maxHeap.size(…

未授权访问:Jenkins未授权访问漏洞

目录 1、漏洞原理 2、环境搭建 3、未授权访问 4、利用未授权访问写入webshell 防御手段 今天继续学习各种未授权访问的知识和相关的实操实验&#xff0c;一共有好多篇&#xff0c;内容主要是参考先知社区的一位大佬的关于未授权访问的好文章&#xff0c;还有其他大佬总结好…

基于JSP动漫论坛的设计与实现(二)

目录 3. 系统开发环境及技术介绍 3.1 开发环境 3.2 开发工具 3.2.1 MyEclipse8.5 3.2.2 MySql 3.3 相关技术介绍 3.3.1 JSP技术简介 3.3.2 JDBC技术技术简介 3.3.3 MVC模式与Struts框架技术 4. 总体设计 4.1 系统模块总体设计 4.1.1 普通用户模块设计 4…

element ui的无法关掉的提示弹框

使用element的$alert组件的属性把X去掉和确定按钮和取消按钮去掉&#xff1b; import { MessageBox } from element-ui; MessageBox.alert(AI功能已到期或暂未开启, 友情提示, {showClose: false,showCancelButton: false,showConfirmButton: false }); 如果在router的路由守…

git 常用命令 git怎么撤销命令 持续更新中!!!!

基本流程 # 拉取仓库 git clone 仓库地址 # 拉取最新版本 git pull # 本地提交 git add . git commit -m "本次提交信息&#xff01;" # 推送上云 git push分支 # 创建分支 git checkout -b cart # 删除本机的分支 git branch -d cart # 切换分支 本地切换到主分支…

引入RabbitMQ

前置条件 docker 安装 mq docker run \-e RABBITMQ_DEFAULT_USERdudu \-e RABBITMQ_DEFAULT_PASS123456 \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \--network hmall \-d \rabbitmq:3.8-management可能会出现&#xff1a;docker: Er…

2024HW Linux应急响应基础学习

首先展示关于Linux的关键目录&#xff0c;这是应急响应查看的关键&#xff1a; 常用命令 top //查看进程资源的占用情况 ps -aux //查看进程 直接写ps aux也可以 netstat -antpl //查看网络连接 ls -alh /proc/pid //查看某个pid对应的可执行程序 pid记得修改 lsof /…

基于Springboot+Vue+Java的校园资料分享平台

&#x1f49e; 文末获取源码联系 &#x1f649; &#x1f447;&#x1f3fb; 精选专栏推荐收藏订阅 &#x1f447;&#x1f3fb; &#x1f380;《Java 精选实战项目-计算机毕业设计题目推荐-期末大作业》&#x1f618; 更多实战项目~ https://www.yuque.com/liuyixin-rotwn/ei3…

word图片水印

一、word中旧水印如何删除 打开word模板&#xff0c;想要删除旧水印&#xff0c;如下图所示操作&#xff0c;但是旧水印删除不掉。 以为上传新水印图片会替换掉旧水印&#xff0c;结果显示了2个水印&#xff0c;要怎么删除呢&#xff1f; 如下截图所示&#xff0c;双击打开页…