首页 游戏 软件 资讯 排行榜 专题
首页
AI
比non-local更好,基于Paddle2.0的GCNet和BAT

比non-local更好,基于Paddle2.0的GCNet和BAT

热心网友
48
转载
2025-07-21
本项目使用Paddle2.0复现了改进的non-local网络架构GCNet和BAT,并在动物分类数据集上进行了训练和验证。同时还比较了与传统non-local网络的训练和验证效果区别。

比non-local更好,基于paddle2.0的gcnet和bat - 游乐网

项目背景

Non-local是2018年CVPR上的一篇论文Non-local neural networks中提出的一种获取远距离注意力的网络架构,由于non-local是在时域和空域两个维度进行计算的,作者将其用在视频分类中。如果只是在空域进行计算,就可以将其用于图片分类了,这也是本项目的实验任务。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

GCNet(Global Context Networks)最初是2019年arxiv上的一篇论文GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond中提出的一种结合SE注意力模块架构和Non local算法原理对non-local进行改进的网络结构。GCNet还获得了ICCV2019 Neural Architects Workshop的最佳论文奖并且最近发表在了期刊TPAMI上。

BAT(Bilinear Attentional Transforms)是2020年CVPR上的一篇论文Non-Local Neural Networks with Grouped Bilinear Attentional Transforms中提出的一种针对non-local网络改进的网络结构。

Non-local可以建模时间和空间维度上的关联性;GCNet结合了基于通道的注意力机制SE和能够捕获全局空间信息的Non-local网络;BAT是在传统的non-local模块上改进的可进行变形操作的新型模块,并且在图片分类和视频分类的性能上已经超过了传统的non-local网络结构。本项目复现GCNet和BAT并和non-local网络进行动物图像分类的实验比较。

项目简介

本项目首次使用paddle2.0复现了non-local网络的改进网络GCNet和BAT,并在动物分类数据集上进行了训练和验证。

动物数据集的划分是按8:2的的划分方法进行训练集与验证集划分的。

GCNet模型简介

一张图片中各个像素点间的关系,特别是长距离像素点间的关系对各种视觉任务非常重要。这种关系可以通过传统的堆叠卷积层的方法获得,但是往往效率低下。Non-local网络通过自注意力机制解决了这个问题。但是对于图片来说,作者通过实验发现,每个像素点的全局特征图基本都是一样的,如图1所示,其中红点是要计算的目标点。基于此,就没有必要计算每个点的全局特征图了。所以,作者就提出了一种比non-local的方法效果好但是计算量小的多的简化的注意力机制模块。

比non-local更好,基于Paddle2.0的GCNet和BAT - 游乐网

图1 non-local方法计算的红色点的注意力特征图

Non-local的计算方法有多种,包括高斯、嵌入式高斯、点积和拼接。GCNet采用了嵌入式高斯的方法,这也是通常使用的方法。GCNet模块的实现细节示意图如图2所示。其中,图2中的a表示GCNet模块的流程图,图2中的b表示简化版的non-local模块示意图,图2中的c表示GCNet模块示意图。可以看出,GCNet模块是简化版的non-local和SE模块机制的结合。

比non-local更好,基于Paddle2.0的GCNet和BAT - 游乐网

图2 GCNet模块实现细节示意图

具体实现可以fork后见代码细节。

论文原文:Global Context Networks

参考代码:

PyTorch的实现

BAT模型简介

既然是对non-local网络进行改进,我们先来看下non-local的网络架构是什么样的。如图3所示。当然,图3所示的是在时间和空间两个维度上的non-local架构,和纯空间上的没有太大区别,只需要把T去掉然后将三维卷积换成二维卷积即可。

比non-local更好,基于Paddle2.0的GCNet和BAT - 游乐网

图3 Non-local网络架构示意图

跟non-local网络相比,BAT可以对图片的局部信息进行各种变换,如缩放、平移、旋转等。如图4所示。图4的a显示的是传统non-local网络的示意图,图4的b显示的是BAT模块的示意图。

比non-local更好,基于Paddle2.0的GCNet和BAT - 游乐网

图4 BAT和non-local的比较示意图

BAT的实现细节如图5所示。

比non-local更好,基于Paddle2.0的GCNet和BAT - 游乐网

图5 BAT实现细节示意图

具体实现可以fork后见代码细节。

non-local论文原文:Non-local Neural Networks

BAT论文原文:Non-Local Neural Networks with Grouped Bilinear Attentional Transforms

参考代码:

PyTorch的实现

数据集介绍

本项目使用10分类的动物数据集进行训练和验证.

该十分类动物数据集,包含dog,horse,elephant,butterfly,chicken,cat,cow,sheep,spider和squirrel。每一分类的图片数量为2k-5k。

文件结构

解压数据集

In [ ]
!unzip -q data/data70196/animals.zip -d work/dataset
登录后复制

查看图片

In [ ]
import osimport randomfrom matplotlib import pyplot as pltfrom PIL import Imageimgs = []paths = os.listdir('work/dataset')for path in paths:       img_path = os.path.join('work/dataset', path)    if os.path.isdir(img_path):        img_paths = os.listdir(img_path)        img = Image.open(os.path.join(img_path, random.choice(img_paths)))        imgs.append((img, path))f, ax = plt.subplots(3, 3, figsize=(12,12))for i, img in enumerate(imgs[:9]):    ax[i//3, i%3].imshow(img[0])    ax[i//3, i%3].axis('off')    ax[i//3, i%3].set_title('label: %s' % img[1])plt.show()
登录后复制
登录后复制

划分训练集和验证集

In [ ]
!python code/train_val_split.py
登录后复制
finished train val split!
登录后复制

使用non-local网络进行动物分类的训练并验证

训练

In [1]
!python code/train.py --net 'nl'
登录后复制

验证

In [20]
!python code/eval.py --net 'nl'
登录后复制
W0303 17:08:47.355185  7686 device_context.cc:362] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1W0303 17:08:47.359616  7686 device_context.cc:372] device: 0, cuDNN Version: 7.6.add nl after block 1 with 512 planes.add nl after block 3 with 512 planes.add nl after block 1 with 1024 planes.add nl after block 3 with 1024 planes.add nl after block 5 with 1024 planes.Eval begin...The loss value printed in the log is the current batch, and the metric is the average value of previous step.step 103/103 [==============================] - loss: 1.0642 - acc: 0.7976 - 228ms/step         Eval samples: 3276{'loss': [1.0642079], 'acc': 0.7976190476190477}
登录后复制

图示训练验证过程

比non-local更好,基于Paddle2.0的GCNet和BAT - 游乐网

图6. 使用non-local的训练验证图示

使用GCNet网络进行动物分类的训练并验证

训练

In [2]
!python code/train.py --net 'gc'
登录后复制

验证

In [22]
!python code/eval.py --net 'gc'
登录后复制
W0303 17:13:22.231034  8017 device_context.cc:362] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1W0303 17:13:22.235092  8017 device_context.cc:372] device: 0, cuDNN Version: 7.6.add gc after block 1 with 512 planes.add gc after block 3 with 512 planes.add gc after block 1 with 1024 planes.add gc after block 3 with 1024 planes.add gc after block 5 with 1024 planes.Eval begin...The loss value printed in the log is the current batch, and the metric is the average value of previous step.step 103/103 [==============================] - loss: 0.6511 - acc: 0.8040 - 217ms/step         Eval samples: 3276{'loss': [0.6511191], 'acc': 0.8040293040293041}
登录后复制

图示训练验证过程

比non-local更好,基于Paddle2.0的GCNet和BAT - 游乐网

图7. 使用GCNet的训练验证图示

使用BAT网络进行动物分类的训练并验证

训练

In [ ]
!python code/train.py --net 'bat'
登录后复制

验证

In [21]
!python code/eval.py --net 'bat'
登录后复制
W0303 17:11:59.910156  7866 device_context.cc:362] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1W0303 17:11:59.914266  7866 device_context.cc:372] device: 0, cuDNN Version: 7.6.add bat after block 1 with 512 planes.add bat after block 3 with 512 planes.add bat after block 1 with 1024 planes.add bat after block 3 with 1024 planes.add bat after block 5 with 1024 planes.Eval begin...The loss value printed in the log is the current batch, and the metric is the average value of previous step.step 103/103 [==============================] - loss: 0.7981 - acc: 0.8159 - 236ms/step         Eval samples: 3276{'loss': [0.7981112], 'acc': 0.8159340659340659}
登录后复制

图示训练验证过程

比non-local更好,基于Paddle2.0的GCNet和BAT - 游乐网

图8. 使用BAT的训练验证图示

比较

在本次项目中,可以看出,BAT表现最好,GCNet其次,这两个针对non-local的改进型网络在性能上都超过了原始的non-local网络。

比non-local更好,基于Paddle2.0的GCNet和BAT - 游乐网

图9. Non-local、GCNet和BAT的验证比较图示

来源:https://www.php.cn/faq/1419344.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

openclaw在飞书测试报错access not configured.
AI
openclaw在飞书测试报错access not configured.

常见报错解析:“Access Not Configured”故障排除指南 许多开发者和团队成员在使用OpenClaw集成飞书时,都曾遭遇过一个典型的中断提示:“access not configured”(访问未配置)。该提示会明确显示您的飞书账户ID及一组唯一的配对验证码,并指出需要联系机器人所有

热心网友
04.02
OpenClaw 常用指令速查
AI
OpenClaw 常用指令速查

OpenClaw 常用指令大全与使用详解 openclaw status:此命令是查看OpenClaw系统整体健康状态的核心指令,执行后即获取服务运行状况的全面报告,是日常运维的首要诊断工具。 openclaw gateway restart:在修改网关配置后,必须运行此指令以重启网关服务,使配置文

热心网友
04.02
OpenClaw 操控浏览器
AI
OpenClaw 操控浏览器

如何通过 OpenClaw 实现 Chrome 浏览器自动化操控 在软件开发与自动化测试领域,持续学习是常态。本文旨在详细介绍如何利用 OpenClaw 连接并控制一个已开启的 Chrome 浏览器实例,实现点击、文本输入、文件上传、页面滚动、屏幕截图以及执行 JavaScript 等自动化操作。整

热心网友
04.01
# OpenClaw QQ 机器人接入完整指南
AI
# OpenClaw QQ 机器人接入完整指南

项目概述 你是否希望将强大的 AI 助手带入日常聊天?本教程将指导你完成搭建流程,让你能在 QQ 上直接调用 OpenClaw 智能助手,实现无门槛的 AI 对话体验。 架构说明 ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │ QQ 用户 │ ─

热心网友
04.01
OpenClaw 保姆级 window部署
AI
OpenClaw 保姆级 window部署

一 下载并安装Node js,全程保持默认设置 首先,请前往Node js官方网站的下载中心:https: nodejs org zh-cn download。根据您的操作系统(Windows Mac Linux)下载对应的安装程序。运行安装向导时,整个过程非常简单,您只需连续点击“下一步”按钮

热心网友
04.01

最新APP

火柴人传奇
火柴人传奇
动作冒险 04-01
街球艺术
街球艺术
体育竞技 04-01
飞行员模拟
飞行员模拟
休闲益智 04-01
史莱姆农场
史莱姆农场
休闲益智 04-01
绝区零
绝区零
角色扮演 04-01

热门推荐

灰烬之国能联机吗灰烬之国多人联机功能与设置方法详解
游戏攻略
灰烬之国能联机吗灰烬之国多人联机功能与设置方法详解

《灰烬之国》详细评测:目前仅支持单人,深度构筑与流派搭配是核心玩法 近日正式上线的动作Roguelike《灰烬之国》,以其高速流畅的俯视角战斗和极具深度的Build构筑系统,迅速吸引了大量核心玩家的关注。然而,许多玩家在入手前最关心的问题是:这款游戏是否支持多人联机合作? 答案是明确的:目前不支持。

热心网友
04.06
魔兽世界中怎么发放装备
游戏攻略
魔兽世界中怎么发放装备

在《魔兽世界》中如何高效公平地分配装备?团队管理者必看指南 对于任何一支《魔兽世界》的团队来说,顺利推倒副本首领固然值得庆祝,但这仅仅完成了目标的一半。真正考验团队凝聚力与管理者智慧的,往往是BOSS倒下之后的关键环节——装备的分配。这件事如果处理得当,能极大提振团队士气,让团队无往不利;反之,处理

热心网友
04.06
《洛克王国世界》家园经验对照表
游戏攻略
《洛克王国世界》家园经验对照表

《洛克王国世界》家园经验对照表:不同植物的经验获取效率分析 在《洛克王国世界》的家园系统中,种植植物是获取经验值的一个稳定且重要的途径。然而,不同种类植物的经验产出效率、生长周期存在显著差异。为了帮助玩家优化家园种植策略,我们结合玩家实测数据整理了一份详细的经验对照表,助您精准选择高性价比植物,最大

热心网友
04.06
《洛克王国世界》自爆流游玩心得
游戏攻略
《洛克王国世界》自爆流游玩心得

《洛克王国世界》自爆流玩法深度解析:刷钱效率与实战策略 在《洛克王国世界》多样化的战术体系中,自爆流凭借其高强度的刷钱效率与独特的对战风格,成为一种备受关注的玩法。许多玩家都对它的具体操作与实战技巧充满好奇。本文将结合核心实战经验,为你系统剖析自爆流的操作思路、阵容配置要点及关键注意事项,助你快速上

热心网友
04.06
《红色沙漠》嘟嘟鸟强化铁锅图纸获取攻略-势力任务与净化流程详解
游戏攻略
《红色沙漠》嘟嘟鸟强化铁锅图纸获取攻略-势力任务与净化流程详解

速览 本文为您带来《红色沙漠》中关键装备——嘟嘟鸟强化铁锅制作图纸的详细获取指南。获取流程的核心在于完成势力任务“智慧女巫”,并彻底净化“免罪圣所”。您需要清理区域内的所有敌人、击败最终守关BOSS,并成功解开一个关于核心的机关谜题,图纸即可入手。以下是分步详解。 红色沙漠嘟嘟鸟强化铁锅制作图纸完整

热心网友
04.06