激活Aware

目录

1、概述

2、BeanFactoryAware 示例

创建普通类

创建BeanFactoryAware

spring配置

spring引导类

运行结果


1、概述

Spring 提供了一些 Aware接口,比如BeanFactoryAware、ApplicationContextAware、ResourceLoaderAware等,实现Aware接口的bean在被初始化之后,可以取得一些相对应的资源。例如BeanFactoryAware 在 bean 初始化后,Spring容器将会注入 BeanFactory 的实例。

2、BeanFactoryAware 示例

创建普通类

package thinking.in.spring.boot.samples.spring5.aware;

public class Hello {
    public void say() {
        System.out.println("hello aware");
    }
}

创建BeanFactoryAware

package thinking.in.spring.boot.samples.spring5.aware;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;

public class HelloAware implements BeanFactoryAware {
    private BeanFactory beanFactory;
    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
        this.beanFactory = beanFactory;
    }

    public void testHelloAware() {
        Hello hello = (Hello) this.beanFactory.getBean("hello");
        hello.say();
    }
}

spring配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:customLabel="http://www.rh.com/schema/customLabel"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.rh.com/schema/customLabel
        http://www.rh.com/schema/customLabel.xsd">

    <bean id="hello" class="thinking.in.spring.boot.samples.spring5.aware.Hello" />
    <bean id="helloAware" class="thinking.in.spring.boot.samples.spring5.aware.HelloAware" />

</beans>

spring引导类

package thinking.in.spring.boot.samples.spring5.bootstrap;

import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import thinking.in.spring.boot.samples.spring5.aware.HelloAware;
import thinking.in.spring.boot.samples.spring5.circle.CircleA;
import thinking.in.spring.boot.samples.spring5.circle.CircleB;
import thinking.in.spring.boot.samples.spring5.circle.CircleC;

public class AwareBootstrap {

    public static void main(String[] args) {
        DefaultListableBeanFactory defaultListableBeanFactory = new XmlBeanFactory(new ClassPathResource("application-aware.xml"));
        HelloAware helloAware = (HelloAware)defaultListableBeanFactory.getBean("helloAware");
        helloAware.testHelloAware();
    }
}

运行结果

信息: Loading XML bean definitions from class path resource [application-aware.xml]
hello aware

 

### Channel-Aware Transformer的研究背景 Channel-Aware Transformer是一种专注于通道维度上信息处理的Transformer变体,在计算机视觉领域得到了广泛应用。这类模型旨在增强不同通道间的关系建模能力,从而提高对输入数据的理解精度。 ### 研究论文分析 虽然提供的参考资料中并未直接提及Channel-Aware Transformer的具体细节[^1],但在Vision Transformer Based Methods部分可以推测该类方法属于基于Transformer架构的发展方向之一。对于更深入理解Channel-Aware Transformer的工作原理及其创新之处,建议查阅专门针对此主题的研究文献。 ### 实现方式探讨 通常情况下,Channel-Aware Transformer会引入特定机制来捕捉并利用跨通道的相关性: - **通道注意力机制**:通过计算各通道的重要性权重,使网络能够聚焦于最具代表性的特征。 - **多尺度融合策略**:结合来自多个分辨率下的表示,强化全局上下文感知力。 - **自适应调制层**:允许动态调整每层内部的操作参数,依据具体任务需求优化性能表现。 ```python class ChannelAwareAttention(nn.Module): def __init__(self, channels): super(ChannelAwareAttention, self).__init__() self.fc = nn.Linear(channels, channels) def forward(self, x): b, c, _, _ = x.size() y = F.avg_pool2d(x, (x.size(2), x.size(3))).view(b, c) y = torch.sigmoid(self.fc(y)).view(b, c, 1, 1) return x * y.expand_as(x) ``` 上述代码展示了如何构建一个简单的通道注意模块,其核心思想在于通过对平均池化后的特征图施加全连接变换以及Sigmoid激活函数得到一组可乘系数,进而实现对原始特征的选择性加强或抑制效果。 ### 应用场景举例 此类技术广泛应用于各类视觉识别任务当中,包括但不限于: - 图像分类与目标检测; - 场景解析及语义分割; - 超分辨率重建和风格迁移等创造性工作; 值得注意的是,HiveFormer所描述的历史感知指令条件多视图Transformer框架同样体现了对不同类型信息(如文字说明、图像序列)之间交互作用的关注,这与Channel-Aware Transformer强调的细粒度特征关联挖掘有着异曲同工之妙[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值