ELA(Efficient Local Attention)注意力机制

2024年出了一个新的随插随用的注意力机制ELA(Efficient Local Attention)。

具体结构:

(a)SE模块

(b)CA模块

(c)ELA模块

文中总结了CA模块的不足之处并针对CA的缺点提出了ELA模块。

为了优化 ELA 的性能,同时考虑参数数量(参数为:conv1d中的Kernel_size,groups,GN中的num_groups),文中引入了四种方案:

ELA-Tiny(ELA-T), ELA-Base(ELAB), ELA-Small(ELA-S), ELA-Large(ELA-L)

代码实现:

import torch
import torch.nn as nn


class ELA(nn.Module):
    def __init__(self, in_channels, phi):
        super(ELA, self).__init__()
        '''
        ELA-T 和 ELA-B 设计为轻量级,非常适合网络层数较少或轻量级网络的 CNN 架构
        ELA-B 和 ELA-S 在具有更深结构的网络上表现最佳
        ELA-L 特别适合大型网络。
        '''
        Kernel_size = {'T': 5, 'B': 7, 'S': 5, 'L': 7}[phi]
        groups = {'T': in_channels, 'B': in_channels, 'S': in_channels//8, 'L': in_channels//8}[phi]
        num_groups = {'T': 32, 'B': 16, 'S': 16, 'L': 16}[phi]
        pad = Kernel_size//2
        self.con1 = nn.Conv1d(in_channels, in_channels, kernel_size=Kernel_size, padding=pad, groups=groups, bias=False)
        self.GN = nn.GroupNorm(num_groups, in_channels)
        self.sigmoid = nn.Sigmoid()

    def forward(self, input):
        b, c, h, w = input.size()
        x_h = torch.mean(input, dim=3, keepdim=True).view(b,c,h)
        x_w = torch.mean(input, dim=2, keepdim=True).view(b,c,w)
        x_h = self.con1(x_h)    # [b,c,h]
        x_w = self.con1(x_w)    # [b,c,w]
        x_h = self.sigmoid(self.GN(x_h)).view(b, c, h, 1)   # [b, c, h, 1]
        x_w = self.sigmoid(self.GN(x_w)).view(b, c, 1, w)   # [b, c, 1, w]
        return x_h * x_w * input


if __name__ == "__main__":

    # 创建一个形状为 [batch_size, channels, height, width] 的虚拟输入张量
    input = torch.randn(2, 256, 40, 40)
    ela = ELA(in_channels=256, phi='T')
    output = ela(input)
    print(output.size())

### Elasticsearch 和 Kibana 的基本配置与错误排查 #### 配置 Elastic Stack 基础环境 为了成功运行 Elasticsearch (ES) 及其可视化工具 Kibana,需完成基础配置并处理可能出现的连接问题。 1. **Elasticsearch URL 设置** 用户可以通过指定 `es_url` 来访问 Elasticsearch 实例。通常情况下,默认地址为 `http://localhost:9200/`[^1]。如果 ES 启用了安全认证,则需要提供用户名和密码作为附加参数。 2. **Kibana URL 配置** 对于 Kibana 而言,其默认监听端口为 5601,因此标准访问路径应形如 `http://localhost:5601/`。当尝试通过浏览器打开此页面时,可能会被重定向至登录界面(前提是已启用身份验证功能)。 3. **安全性增强——开启用户权限校验** 如果希望进一步保护集群免受未授权访问威胁,在安装完成后务必激活内置的安全特性之一即 X-Pack 功能集中的 Authentication & Authorization 组件。此时不仅需要调整前述提到过的 kibana.yml 文件内的 elasticsearch.username 和 .password 字段值分别为预定义超级管理员账户名 elastic 及对应密钥字符串[^2];而且还需要确保这两个服务之间能够正常通信握手过程顺利完成。 4. **PHP 客户端操作实例展示** 下面给出了一段基于 PHP SDK 执行文档索引创建任务的具体实现方式: ```php <?php $data = [ 'title' => 'Sample Blog Post', 'content' => 'This is a sample blog post content.', ]; // Assuming the model class has been properly defined elsewhere. ElasticSearchModel::getInstance('sports_search_blog')->addDoc('blog', $data); ?> ``` 上述代码片段展示了如何利用自定义封装好的 API 方法向名为 sports_search_blog 的索引内部新增一条记录实体对象[^3]。 5. **系统调用过滤器设置** 当遇到某些特定场景下的异常崩溃现象时,可以考虑临时关闭 bootstrap.system_call_filter 参数开关来规避潜在风险因素影响程序稳定性表现情况如下所示: ```yaml bootstrap.system_call_filter: false ``` 此项改动应当谨慎施行以免引入其他未知隐患问题存在可能性较大程度上取决于实际生产环境中所处硬件平台架构差异等因素共同决定最终效果呈现形式不一而足[^4]。 --- ####
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值