【论文复现】CSRA-Paddle: 残差注意力机制模型


本文介绍基于PaddlePaddle复现ICCV 2025论文的CSRA-Paddle项目。该项目通过类特定残余注意力模块(CSRA),结合类别无关平均池化特征与类特定空间注意力特征,提升多标签识别效果。在Pascal VOC 2007数据集上,Resnet101+CSRA模型复现精度达94.7 mAP,提供了完整的数据集准备、训练、验证及推理流程。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

【论文复现】csra-paddle: 残差注意力机制模型 -

CSRA-Paddle: 残差注意力机制模型

1.1 简介

本项目基于PaddlePaddle 复现了ICCV 2025 上发表的论文:
Residual Attention: A Simple But Effective Method for Multi-Label Recoginition
【论文复现】CSRA-Paddle: 残差注意力机制模型 -        

为了有效地捕捉来自不同类别的对象所占据的不同空间区域,这篇文章提出了一个非常简单的模块,称为类特定的残余注意力(CSRA)。 CSRA通过提出一个简单的空间注意力分数为每个类别生成特定于类的特征,然后将其与与类别无关的平均池化特征相结合。CSRA 在多标签识别上取得了 state-of-the-art 的结果,同时相比于其他方法简单得多。

本项目基于PaddlePaddle框架复现了CSRA,并在Pascal VOC数据集上进行了实验。

论文:

  • [1] Zhu, K. , and J. Wu . Residual Attention: A Simple But Effective Method for Multi-Label Recoginition. ICCV, 2025.

项目参考:

  • https://github.com/Kevinz-code/CSRA

上述CSRA的核心代码块:

class CSRA(nn.Layer): # one basic block 
    def __init__(self, input_dim, num_classes, T, lam):
        super(CSRA, self).__init__()
        self.T = T      # temperature       
        self.lam = lam  # Lambda                        
        self.head = nn.Conv2D(input_dim, num_classes, 1, bias_attr=False)
        self.softmax = nn.Softmax(axis=2)    def forward(self, x):
        # x (B d H W)
        # normalize classifier
        # score (B C HxW)
        score = self.head(x) / paddle.norm(self.head.weight, axis=1, keepdim=True).transpose((1, 0, 2, 3))
        score = score.flatten(2)
        base_logit = paddle.mean(score, axis=2)        if self.T == 99: # max-pooling
            att_logit = paddle.max(score, axis=2)[0]        else:
            score_soft = self.softmax(score * self.T)
            att_logit = paddle.sum(score * score_soft, axis=2)        return base_logit + self.lam * att_logit

       

可以参阅论文进行理解。

1.2 复现精度

原文在Pascal VOC 2007 val数据集的测试效果如下表

【论文复现】CSRA-Paddle: 残差注意力机制模型 -        

本项目在Pascal VOC 2007 val数据集的测试效果如下表。

Frame NetWork epochs opt lr resolution batch_size dataset card mAP
本项目Paddle Resnet101+CSRA 30 SGD 0.01 448x448 16 VOC2007 1xV100 94.7

可见,本项目成功用PaddlePaddle复现了论文结果(Resnet101+CSRA: 94.7)。

1.3 数据集

数据集网站:Pascal VOC

AiStudio上的数据集:pascal-voc

数据集介绍:

Pascal 的全称是 Pattern Analysis, Statical Modeling and Computational Learning。 PASCAL VOC 挑战赛是视觉对象的分类识别和检测的一个基准测试,提供了检测算法和学习性能的标准图像注释数据集和标准的评估系统。从2005年至今,该组织每年都会提供一系列类别的、带标签的图片,挑战者通过设计各种精妙的算法,仅根据分析图片内容来将其分类,最终通过准确率、召回率、效率来一决高下。

Pascal VOC(2005~2012)竞赛的目标主要是进行图像的目标识别,其提供的数据集包含20类的物体。每张图片都有标注,标注的物体包括人、动物(如猫、狗、岛等)、交通工具(如车、船飞机等)、家具(如椅子、桌子、沙发等)在内的20个类别。每个图像平均有2.4个目标。

VOC2007:中包含9963张标注过的图片, 由train/val/test三部分组成, 共标注出24,640个物体。

  • 本项目使用的数据集结构:
PATH/Dataset/
|-- VOCdevkit/|---- VOC2007/|------ JPEGImages/|------ Annotations/|------ ImageSets/

       

注:PATH/Dataset/为数据集的路径

简小派 简小派

简小派是一款AI原生求职工具,通过简历优化、岗位匹配、项目生成、模拟面试与智能投递,全链路提升求职成功率,帮助普通人更快拿到更好的 offer。

简小派 123 查看详情 简小派

快速开始

2.1 数据准备

In [ ]
!unzip -q data/data4379/pascalvoc.zip -d data/data4379/
    In [1]
%cd /home/aistudio/CSRA-Paddle/
!python utils/prepare/prepare_voc.py  --data_path  /home/aistudio/data/data4379/pascalvoc/VOCdevkit
       
/home/aistudio/CSRA-Paddle
generating labels for VOC07 dataset
generating final json file for VOC07 dataset
VOC07 data preparing finished!
data/voc07/trainval_voc07.json data/voc07/test_voc07.json
       

2.2 训练

In [ ]
%cd /home/aistudio/CSRA-Paddle/
!python train.py --num_heads 1 --lam 0.1 --dataset voc07 --num_cls 20 --s*e_dir=./checkpoint
   

2.3 验证

In [ ]
%cd /home/aistudio/CSRA-Paddle/
!python val.py --model resnet101 --num_heads 1 --lam 0.1 --dataset voc07 --num_cls 20  --load_from output/epoch_11.pdparams
   

结果:

100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 310/310 [01:13

mAP: 0.946971

CP: 0.922363, CR: 0.876188, CF1 :0.898682

OP: 0.943647, OR: 0.890632, OF1 0.916373

2.4 预测

In [3]
%cd /home/aistudio/CSRA-Paddle/
!python predict.py --model resnet101 --num_heads 1 --lam 0.1 --dataset voc07 --load_from  output/epoch_11.pdparams --img_dir utils/demo_images
       
backbone params inited by paddle official model
W0410 16:12:18.782222  3012 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1
W0410 16:12:18.786772  3012 device_context.cc:465] device: 0, cuDNN Version: 7.6.
Loading weights from checkpoint_94.697/epoch_11.pdparams
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/math_op_patch.py:253: UserWarning: The dtype of left and right variables are not the same, left dtype is paddle.float32, but right dtype is paddle.int64, the right dtype will convert to paddle.float32
  format(lhs_dtype, rhs_dtype, lhs_dtype))
utils/demo_images/000002.jpg prediction: train,
utils/demo_images/000007.jpg prediction: car,
utils/demo_images/000004.jpg prediction: car,
utils/demo_images/000009.jpg prediction: horse,person,
utils/demo_images/000001.jpg prediction: dog,person,
utils/demo_images/000006.jpg prediction: chair,
       

2.5 TIPC

注意:本部分为论文复现赛内容,只是为了验证整个项目的训练推理的正确性。学习目的可以不进行这部分的运行,即这部分非项目必要部分。

首先安装auto_log,需要进行安装,安装方式如下: auto_log的详细介绍参考https://github.com/LDOUBLEV/AutoLog。

git clone https://github.com/LDOUBLEV/AutoLog
cd AutoLog/
pip3 install -r requirements.txt
python3 setup.py bdist_wheel
pip3 install ./dist/auto_log-1.2.0-py3-none-any.whl
       

进行TIPC:在命令行执行

bash test_tipc/prepare.sh test_tipc/configs/CSRARes101/train_infer_python.txt 'lite_train_lite_infer'bash test_tipc/test_train_inference_python.sh test_tipc/configs/CSRARes101/train_infer_python.txt 'lite_train_lite_infer'
       

注意:由于代码中每次训练需要生成数据集的标签json文件,进行tipc会覆盖原来data目录下的json文件,所以进行tipc后要进行完整训练的话。需要重新为完整数据集生成json文件,也就是重新执行数据准备的步骤

2.6 模型导出与推理

In [ ]
!python export_model.py --model resnet101 --num_heads 1 --lam 0.1 --img_size=448 --model_path=./output/epoch_11.pdparams --s*e_dir=./output
    In [3]
!python infer.py --use_gpu=True --model_file=output/model.pdmodel --input_file=utils/demo_images --params_file=output/model.pdiparams
       
Inference model(CSRARes101)...
W0410 20:56:50.359391 12322 analysis_predictor.cc:795] The one-time configuration of analysis predictor failed, which may be due to native predictor called first and its configurations taken effect.--- Running analysis [ir_graph_build_pass]--- Running analysis [ir_graph_clean_pass]--- Running analysis [ir_analysis_pass]--- Running IR pass [is_test_pass]--- Running IR pass [simplify_with_basic_ops_pass]--- Running IR pass [conv_affine_channel_fuse_pass]--- Running IR pass [conv_eltwiseadd_affine_channel_fuse_pass]--- Running IR pass [conv_bn_fuse_pass]I0410 20:56:50.920820 12322 fuse_pass_base.cc:57] ---  detected 104 subgraphs--- Running IR pass [conv_eltwiseadd_bn_fuse_pass]--- Running IR pass [embedding_eltwise_layernorm_fuse_pass]--- Running IR pass [multihead_matmul_fuse_pass_v2]--- Running IR pass [squeeze2_matmul_fuse_pass]--- Running IR pass [reshape2_matmul_fuse_pass]--- Running IR pass [flatten2_matmul_fuse_pass]--- Running IR pass [map_matmul_v2_to_mul_pass]--- Running IR pass [map_matmul_v2_to_matmul_pass]--- Running IR pass [map_matmul_to_mul_pass]--- Running IR pass [fc_fuse_pass]--- Running IR pass [fc_elementwise_layernorm_fuse_pass]--- Running IR pass [conv_elementwise_add_act_fuse_pass]--- Running IR pass [conv_elementwise_add2_act_fuse_pass]--- Running IR pass [conv_elementwise_add_fuse_pass]--- Running IR pass [transpose_flatten_concat_fuse_pass]--- Running IR pass [runtime_context_cache_pass]--- Running analysis [ir_params_sync_among_devices_pass]I0410 20:56:51.119207 12322 ir_params_sync_among_devices_pass.cc:45] Sync params from CPU to GPU--- Running analysis [adjust_cudnn_workspace_size_pass]--- Running analysis [inference_op_replace_pass]--- Running analysis [memory_optimize_pass]I0410 20:56:52.790841 12322 memory_optimize_pass.cc:216] Cluster name : relu_18.tmp_0  size: 6422528
I0410 20:56:52.790884 12322 memory_optimize_pass.cc:216] Cluster name : x  size: 2408448
I0410 20:56:52.790887 12322 memory_optimize_pass.cc:216] Cluster name : tmp_2  size: 12845056
I0410 20:56:52.790899 12322 memory_optimize_pass.cc:216] Cluster name : relu_3.tmp_0  size: 12845056
I0410 20:56:52.790905 12322 memory_optimize_pass.cc:216] Cluster name : relu_9.tmp_0  size: 12845056--- Running analysis [ir_graph_to_program_pass]I0410 20:56:52.913156 12322 analysis_predictor.cc:714] ======= optimize end =======
I0410 20:56:52.924579 12322 naive_executor.cc:98] ---  skip [feed], feed -> x
I0410 20:56:52.928333 12322 naive_executor.cc:98] ---  skip [tmp_38], fetch -> fetch
W0410 20:56:52.950525 12322 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1
W0410 20:56:52.954545 12322 device_context.cc:465] device: 0, cuDNN Version: 7.6.
utils/demo_images/000002.jpg	prediction: 
train,
utils/demo_images/000007.jpg	prediction: 
car,
utils/demo_images/000004.jpg	prediction: 
car,
utils/demo_images/000009.jpg	prediction: 
horse,person,
utils/demo_images/000001.jpg	prediction: 
dog,person,
utils/demo_images/000006.jpg	prediction: 
chair,
       

导出的模型推理结果与动态图预测结果一致。

复现心得与相关信息

复现心得

多标签图像识别是一项具有挑战性的实用计算机视觉任务。然而,该领域的进展往往具有方法复杂、计算量大、缺乏直观解释的特点。而这篇论文则从很简单的结构设计出发,仅用几行代码,在许多不同的预训练模型和数据集上实现一致的改进,而无需任何额外的训练。CSRA 既易于实现又易于计算,还具有直观的解释。

非常值得读者在图像分类方面的进阶学习!

本次复现也是我在图像分类领域的第一次复现,同时也是第一次完成TIPC任务,学习到了TIPC的内涵,可以帮助别人更快的验证你的模型。

复现的经验分享可以从两个方面来讲:第一步是熟悉论文的核心思想和参考代码的基本结构和核心代码,对复现的难度等有一个大概的把握。第二个是快速的代码对齐。这部分主要是需要熟悉不同框架与Paddle的api函数的功能,不熟悉也没关系,可以通过查阅官网的手册和利用X2Paddle提供的对齐文档进行快速上对齐。

相关信息

信息 描述
作者 xbchen
日期 2025年4月
框架版本 PaddlePaddle==2.2.1
应用场景 图像分类
硬件支持 GPU、CPU

以上就是【论文复现】CSRA-Paddle: 残差注意力机制模型的详细内容,更多请关注其它相关文章!


# 将其  # 河北seo公司如何做  # 衡水网站建设工具招聘  # 制定网店推广营销策划  # 水乡定制网站建设  # 重庆做网站建设优化推广  # 网站移动端如何优化  # 怎么联系门户网站建设  # 网站制作推广公司地址  # 许昌网站全网优化代理商  # 百度seo运营思路  # 进阶  # 主要是  # 下表  # 更快  # 相关信息  # python  # 官网  # 这部  # 一言  # 中文网  # type  # fig  # whee  # latte  # udio  # asic  # igs  # red  # ai  # 工具  # git 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: OpenAI限制网络爬虫访问以保护数据免被用于AI模型训练  《上古卷轴5》AI高清材质包优化游戏中所有怪物  Valve Index VR 头显销量下滑,上市四年的长青树渐失光彩  7/8上海 | 2025世界人工智能大会分论坛:科技与人文-共筑无障碍智能社会  创新全场景清洁方案!海尔商用机器人首发上市  世界人工智能大会上,科大讯飞宣布与华为联手  AI人工智能软件,婚纱设计师的必备利器  Unity 推出面向开发者的 AI 软件市场 AI Hub,股价飙涨 15%  七大主流AI企业包括OpenAI、谷歌等联合承诺:引入水印技术,并允许第三方审核AI内容  黄仁勋:5年前,我们对AI抱有巨大期望  英伟达的AI领域垄断地位:一直无法撼动吗?  海柔创新携手SAP,以机器人技术助力全球客户升级数智化竞争力  工业机器人及非标自动化设备集成服务提供商  十个AI算法常用库J*a版  微软宣布为 Azure AI 添加男性声线,增强文本转语音功能  人手一部「*」!视频版Midjourney免费可用,一句话秒生酷炫大片惊呆网友  美图设计室2.0什么时候上线  此「错」并非真的错:从四篇经典论文入手,理解Transformer架构图「错」在何处  《自然》杂志拒绝刊登人工智能生成的图片和视频  论文插图也能自动生成了,用到了扩散模型,还被ICLR接收  智能化解决方案:保障数据安全阻击泄露和丢失  人工智能在商业中的风险和局限性  OpenOOD更新v1.5:全面、精确的分布外检测代码库及测试平台,支持在线排行榜、一键测试  AI在教育中的角色:AI如何改变我们的学习方式  人工智能助力精准学习,猿辅导小猿学练机满足学生个性化学习需求  人工智能时代的科幻译者怎么办?“做好翻译工作的高端10%”|文化观察  一次购买全年省心,入手科沃斯这几台机器人,省下时间就是金钱  Meta Connect 2025已确定时间为9月27-28,主题涵盖Quest 3与AI技术  WHEE网页地址入口  人形机器人概念集体爆发,能买吗?  AI+音乐如何“生成”动听旋律?一起揭秘世界人工智能大会开场曲  B站内测 AI 搜索功能,输入“?”即可体验  人工智能创作的“婴儿版超级英雄”,你觉得哪个最可爱  史玉柱谈AI:国内最缺是计算数学人才,曾给浙大数学系捐五千万  微软bing聊天推出AI购物工具 可进行比价并查看历史最低价  ChatGPT只讲这25个笑话!实验上千次有90%重复,网友:幽默是人类最后的尊严  人形机器人概念大热!这些产业链标的或受提振  华为云天筹AI求解器荣获世界人工智能大会最高奖  探展WAIC | 第四范式“式说”聚焦toB大模型,布局生成式AI重构企业软件  西班牙小鲜肉*视频在网上疯传,本人发文澄清:是AI换脸的假视频!  管提需求,大模型解决问题:图表处理神器SheetCopilot上线  “踩油门,也要会踩刹车” 互联网企业高管谈人工智能发展  静安大宁功能区企业云天励飞亮相2025世界人工智能大会,秀出AI硬实力!  面向AI大模型,腾讯云首次完整披露自研星脉高性能计算网络  上新7款产品,美图继续“蹭”AI  人工智能赋能无人驾驶:商业化进程再提速  “三夏”农忙保障用电,无人机高空巡视高压线  探索人工智能在居家养老方面的应用  意大利警察拟用AI预测犯罪 该算法被指种族歧视严重  网友自制 AI 版《流浪地球 3》预告片,登上 CCTV6 

 2025-07-29

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.