IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 2021-09-03 -> 正文阅读

[人工智能]2021-09-03

CV领域常用的attention模块的pytorch实现

进入2021年,CV领域已经发展到了非常非常火的时期了,attention的出现更是让卷积模块的功能变得更加强大;通过attention模块,特征图能够更好地关注到感兴趣区域,提取跟实际任务更加契合的特征。
在这个系列中,将近几年出现的attention模块做一个简要的总结,并且将这些attention模块用pytorch实现出来。所有的attention模块都封装成了一个类,在实际调用的时候即插即用,在需要attention的地方可以直接使用。
刚接触transformer不久,仔细看才发现原来attention有这么多花招,很多博客分享的内容也挺实用的。完整的代码放在了github上,欢迎各位点一下star。
每一种attention模块对应的原文地址也放在github上了,想仔细钻研的童鞋下载来认真看。
下面先将第一个attention模块,SENet,全程为Squeeze-and-Excitation Network,论文地址点击这获取。SENet使用的attention是通道自注意力机制,实现的原理图如下:首先将输入经过卷积等操作得到特征图,然后将特征图分成两路,其中一路通过全局平均池化得到一个Bx1x1xC的特征图(B–>batch_size, C–>channel),然后让这个特征图经过一个全连接网络,通道数变成原来的1/r,相当于一个挤压通道的过程(squeeze),经过relu激活函数(excatation)之后将通道变回原来的C,将此事的特征图扩展为跟输入特征图相同的shape,相加得到attention模块的输出。
在这里插入图片描述
论文中分别展示了inception module类型和residual module类型的attention结构。
在这里插入图片描述

pytorch实现起来不难,具体的代码如下所示:

import warnings
warnings.filterwarnings('ignore')
import torch
import torch.nn as nn
import torch.nn.functional as F

class SENet(nn.Module):
    def __init__(self,channel,ratio = 16):
        super(SENet,self).__init__()
        self.global_pool = nn.AdaptiveAvgPool2d(1)
        self.sigmoid = nn.Sigmoid()
        self.fc_1 = nn.Linear(channel,channel//ratio)
        self.relu = nn.ReLU()
        self.fc_2 = nn.Linear(channel//ratio,channel)

    def forward(self,x):
        temp = x
        temp = self.global_pool(temp).view(x.size(0),x.size(1))
        temp = self.fc_1(temp)
        temp = self.relu(temp)
        temp = self.fc_2(temp)
        temp = self.sigmoid(temp).view(x.size(0),x.size(1),1,1)
        temp = temp.expand_as(x)
        return x+temp
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:31:26  更:2021-09-04 17:32:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 16:25:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码