一维pytorch注意力机制

这篇具有很好参考价值的文章主要介绍了一维pytorch注意力机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在研究一维数据,发现目前网络上的注意力机制都是基于二维来构建的,对于一维的,没有查到什么可直接加在网络中的代码,因此本次文章主要介绍常用的三种注意力机制–SENet,CBAM和ECA其一维的代码。

1.SEnet注意力机制

SE模块允许对特征重新校准,其核心是通过全连接层对全局信息学习,根据损失函数值Loss实现通道权重梯度更新,并获取每个通道特征的权重信息,依据权重值的大小来增加有用特征的学习,抑制不重要的特征信息,提高网络运行效率。
具体的过程为:
注意力机制传入四个参数,B C W H,因此一维只需传入三个参数,并将二维卷积核换为一维卷积核即可,接下来是模型参数结构展示:
一维注意力机制,pytorch,深度学习,人工智能
一维注意力机制,pytorch,深度学习,人工智能

2.CBAM注意力机制

CBAM将通道注意力机制和空间注意力机制进行一个结合,相比于SENet只关注通道的注意力机制可以取得更好的效果。其改动为需进行一维的全局平均池化与全局最大池化,同样将二维卷积改为一维卷积即可。
接下来是模型参数结构展示:

MyModel(
  (features): Sequential(
    (0): Conv1d(32, 32, kernel_size=(3,), stride=(2,), padding=(1,))
    (1): BatchNorm1d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): CBAM(
      (channelAttention): ChannelAttention(
        (avg_pool): AdaptiveAvgPool1d(output_size=1)
        (max_pool): AdaptiveMaxPool1d(output_size=1)
        (fc1): Conv1d(32, 2, kernel_size=(1,), stride=(1,))
        (relu1): ReLU()
        (fc2): Conv1d(2, 32, kernel_size=(1,), stride=(1,))
        (sigmoid): Sigmoid()
      )
      (spatialAttention): SpatialAttention(
        (conv1): Conv1d(2, 1, kernel_size=(7,), stride=(1,), padding=(3,))
        (sigmoid): Sigmoid()
      )
    )
    (4): Conv1d(32, 32, kernel_size=(3,), stride=(2,), padding=(1,))
    (5): BatchNorm1d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (6): ReLU()
    (7): Conv1d(32, 32, kernel_size=(3,), stride=(2,), padding=(1,))
    (8): BatchNorm1d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (9): ReLU()
  )
  (classifier): Sequential(
    (0): Linear(in_features=384, out_features=48, bias=True)
    (1): ReLU()
    (2): Linear(in_features=48, out_features=2, bias=True)
  )
)

模型参数表:
一维注意力机制,pytorch,深度学习,人工智能

3.ECA注意力机制

ECA通过快速的一维卷积产生通道注意,其核大小可以通过通道维数的非线性映射自适应地确定。并且ECA是一个非常轻量级的即插即用块,可以提高各种深度CNN架构的性能。
ECA的改动则为去掉维度转换函数与删除维度的函数。
![一维注意力机制,pytorch,深度学习,人工智能

接下来是模型参数结构展示:

MyModel(
  (features): Sequential(
    (0): Conv1d(32, 32, kernel_size=(3,), stride=(2,), padding=(1,))
    (1): BatchNorm1d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU()
    (3): ECABlock(
      (avg_pool): AdaptiveAvgPool1d(output_size=1)
      (conv): Conv1d(32, 32, kernel_size=(3,), stride=(1,), padding=(1,), bias=False)
      (sigmoid): Sigmoid()
    )
    (4): Conv1d(32, 32, kernel_size=(3,), stride=(2,), padding=(1,))
    (5): BatchNorm1d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (6): ReLU()
    (7): Conv1d(32, 32, kernel_size=(3,), stride=(2,), padding=(1,))
    (8): BatchNorm1d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (9): ReLU()
  )
  (classifier): Sequential(
    (0): Linear(in_features=384, out_features=48, bias=True)
    (1): ReLU()
    (2): Linear(in_features=48, out_features=2, bias=True)
  )
)

模型参数表:
一维注意力机制,pytorch,深度学习,人工智能
对于代码,可关注我们公众号浩浩的科研笔记,代码都在上面。我们也是有售后的,所以大家可以放心。文章来源地址https://www.toymoban.com/news/detail-612342.html

到了这里,关于一维pytorch注意力机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习注意力机制系列】—— SKNet注意力机制(附pytorch实现)

    SKNet(Selective Kernel Network) 是一种用于图像分类和目标检测任务的深度神经网络架构,其核心创新是 引入了选择性的多尺度卷积核(Selective Kernel)以及一种新颖的注意力机制 ,从而在不增加网络复杂性的情况下提升了特征提取的能力。SKNet的设计旨在 解决多尺度信息融合的

    2024年02月13日
    浏览(52)
  • 【深度学习】注意力机制

    注意力机制(Attention Mechanism)是一种在计算机科学和机器学习中常用的技术,可以使模型在处理序列数据时更加准确和有效。在传统的神经网络中,每个神经元的输出只依赖于前一层的所有神经元的输出,而在注意力机制中,每个神经元的输出不仅仅取决于前一层的所有神经

    2024年02月02日
    浏览(42)
  • 深度学习——常见注意力机制

    SENet属于通道注意力机制。2017年提出,是imageNet最后的冠军 SENet采用的方法是对于特征层赋予权值。 重点在于如何赋权 1.将输入信息的所有通道平均池化。 2.平均池化后进行两次全连接,第一次全连接链接的神经元较少,第二次全连接神经元数和通道数一致 3.将Sigmoid的值固定

    2024年02月14日
    浏览(34)
  • 【动手深度学习-笔记】注意力机制(四)自注意力、交叉注意力和位置编码

    紧接上回:【动手深度学习-笔记】注意力机制(三)多头注意力 在注意力机制下,我们将词元序列输入注意力汇聚中,以便同一组词元同时充当查询、键和值。 具体来说,每个查询都会关注所有的键-值对并生成一个注意力输出。 像这样的,查询、键和值来自同一组输入的

    2024年01月16日
    浏览(49)
  • 深度学习(5)---自注意力机制

     1. 一般情况下在简单模型中我们输入一个向量,输出结果可能是一个数值或者一个类别。但是在复杂的模型中我们一般会输入一组向量,那么输出结果可能是一组数值或一组类别。  2. 一句话、一段语音、一张图等都可以转换成一组向量。  3. 输入一组向量,一般输出结

    2024年01月23日
    浏览(45)
  • 【深度学习实验】注意力机制(一):注意力权重矩阵可视化(矩阵热图heatmap)

    ​    注意力机制 作为一种模拟人脑信息处理的关键工具,在深度学习领域中得到了广泛应用。本系列实验旨在通过理论分析和代码演示,深入了解注意力机制的原理、类型及其在模型中的实际应用。 本文将介绍将介绍 注意力权重矩阵可视化 (矩阵热图heatmap)   本系

    2024年02月05日
    浏览(45)
  • 深度学习CV方向学习笔记5 —— 通道注意力机制

    目录 1 问题:MobileNet 中的注意力机制 2 SE 通道注意力机制 2.1 SE 通道注意力机制的定义与作用 2.2 SE过程: Squeeze + Excitation + Scale 3 其他通道注意力机制 4 参考链接 问题描述: MobileNet 中使用了通道注意力机制,是如何实现的?CNN中还有哪些 Attention? 2.1 SE 通道注意力机制的定义

    2024年02月08日
    浏览(46)
  • 【深度学习】--图像处理中的注意力机制

    注意力机制是一个非常有效的trick,注意力机制的实现方式有许多。可以在知网上搜索一下yolov下的目标监测的硕士论文,没有一篇不提到注意力机制的迭代修改的,所以很有必要学一下. 最后给出了一个例子。 注意力机制的本质:就是寻址过程! 几种典型的注意力机制: hard

    2024年02月03日
    浏览(60)
  • 点云深度学习系列博客(五): 注意力机制原理概述

    目录 1. 注意力机制由来 2. Nadaraya-Watson核回归 3. 多头注意力与自注意力 4. Transformer模型 Reference 随着Transformer模型在NLP,CV甚至CG领域的流行,注意力机制(Attention Mechanism)被越来越多的学者所注意,将其引入各种深度学习任务中,以提升性能。清华大学胡世民教授团队近期发

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包