本文基于PaddlePaddle复现TabNet网络,该网络可处理表格数据,支持端到端学习,通过顺序注意实现特征选择与可解释性。复现项目在Forest Cover Type数据集精度达0.96777,超PyTorch版本。文中介绍模型结构、数据集、环境配置、训练测试步骤,还总结了复现中自定义算子等问题及解决方法。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜
本项目基于PaddlePaddle复现《 TabNet: Attentive Interpretable Tabular Learning》论文。通常表格数据都是使用X
GBoost和LightGBM这类提升树模型来获得较好的性能。该论文提出了一种使用DNN来处理表格数据,并取得了不错的效果。该项目可使用在机器学习方向,表格数据的分类与回归。如鸢尾花分类,房价预测等案例。也可以尝试使用这个网络去打一些机器学习的比赛。
论文地址:
https://arxiv.org/pdf/1908.07442v5.pdf
本项目github地址:
https://github.com/txyugood/tabnet
参考项目:
https://github.com/dreamquark-ai/tabnet
通过该项目中的issue可知,该项目在Forest Cover Type数据集上的精度为0.9639左右。 本文使用PaddlePaddle深度学习框架进行复现,最终在Forest Cover Type数据集达到0.96777的精度,已经超越Pytorch版本的精度。
TabNet是一种经典的DNN网络结构,它可以处理未经预处理的表格化数据。它主要的功能有:
1.TabNet支持不进行任何预处理的情况下输入原始表格数据,并使用基于梯度下降的优化方法进行训练,从而实现端到端学习的灵活集成。
2.TabNet使用顺序注意来选择在每个决策步骤中推理的特征,由于学习能力用于最显著的功能,因此能够实现可解释性和更好的学习。这种特征选择是即时的,例如,对于每个输入,它可以是不同的,并且不同于其他实例特征选择方法,TabNet采用单一的深度学习架构进行特征选择和推理。
3。上面的设计选择导致了两个有价值的特性:
(1)TabNet优于其他表格学习模型,用于不同领域的分类和回归问题的各种数据集;
(2)TabNet支持两种解释性:局部解释性和全局解释性。
TabNet的主要结构如下图:
a部分为TabNet编码器,由特征变换器、attentive transformer和特征掩模组成。分割块对处理后的表示进行分割,这些表示将由后续步骤的attentive transformer使用,并用于总体输出。对于每一步,特征选择掩模提供了模型功能的可解释信息,并且可以对掩模进行聚合以获得全局特征的重要属性。
b部分为TabNet解码器,每一步由一个特征转换块组成。
c部分显示了一个特征变换器块示例,一个4层网络,其中2层在所有决策步骤zhong共享,2层依赖于决策步骤。每一层由完全连接(FC)层、BN层和GLU层非线性组成。
d部分是一个attentive transformer block示例–使用先验比例信息对单层映射进行调制,该信息汇总了当前决策步骤之前每个特征的使用量。sparsemax用于系数的标准化,导致显著特征的稀疏选择。
运行程序会自动下载数据集并解压到data目录下,不需要手动下载。
如果想手动下载,地址如下。
Forest Cover Type数据集地址:
https://archive.ics.uci.edu/ml/machine-learning-databases/covtype/covtype.data.gz
PaddlePaddle == 2.1.2
python == 3.7
还需安装wget自动下载数据集。安装命令如下:
In [ ]!pip install wget
训练使用了原文中数据集划分方式,原文参考的论文为《Xgboost: Scalable GPU accelerated learning》。
相关项目地址:
https://github.com/RAMitchell/GBM-Benchmarks/blob/master/benchmark.py
模型参数保持原文中的参数设置:
N_d=N_a=64, λ_sparse=0.0001, B=16384, B_v =512, mB=0.7, N_steps=5 and γ=1.5.
调整了原文中的训练策略,模型准确率有所提升。使用Warmup+CosineAnnealingDecay方式来调整学习率,最大epoch为3000。每个epoch执行22次迭代。Warmup设置为5000次迭代达到0.02的学习率,CosineAnnealingDecay半周期设置为22 * 3000 - 5000。
在网络中bn层输入的张量stop_gradient为True时,训练会报错。所以需要处理一下输入才能正常训练,处理方法如下:
将
x = self.initial_bn(x)
改为
c = paddle.to_tensor(np.array([0]).astype('float32'))c.stop_gradient = Truex_1 = x + cx_1.stop_gradient = Falsex = self.initial_bn(x_1)
训练命令:
%cd /home/aistudio/paddle_tabnet/ !python -u train.py
首先现在最高精度模型文件。(acc: 0.96777)
训练结果模型下载地址:
链接: https://pan.baidu.com/s/1FdZ1tWEHF7JWTDZqgF1i3Q
密码: 7hm2
In [6]%cd /home/aistudio/ !unzip best_model.zip%cd /home/aistudio/paddle_tabnet !python predict.py --model_path ../best_model
在本文复现过程遇到了几个问题,虽然都找到了解决办法,但是有的地方还是有些疑惑不知道是不是bug。
idx = paddle.fluid.layers.where(output == 0) grad_input_gather = paddle.gather_nd(grad_input, idx) grad_input_gather = 0 - grad_input_gather grad_input = paddle.scatter_nd_add(grad_input, idx, grad_input_gather)
以上是遇到的一些问题的总结。
# https
# 过程中
# 设置为
# 使用了
# 迭代
# 它可以
# 是在
# 该项目
# 显存
# 自定义
# 变换器
# issue
# bug
# python
# transformer
# paddlepaddle
# pytorch
# dnn
# github
# 架构
# quark
# red
# cos
# 解决方法
# ai
# git
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化91478 】
【
技术知识72672 】
【
云计算0 】
【
GEO优化84317 】
【
优选文章0 】
【
营销推广36048 】
【
网络运营41350 】
【
案例网站102563 】
【
AI智能45237 】
相关推荐:
Gemini怎样用语音输入_Gemini语音输入设置【方法】
GTA Online: 2025最新无限隐形套装防消失技巧
AI 时代高效开发:版本控制与 AI 协同工作流
教你用AI帮你生成一份详细的搬家清单,告别手忙脚乱
律师视角下的生成式AI:信息爆炸时代的法律实践与未来展望
AI猴子视频制作终极指南:从入门到网红,轻松上手!
深度解析Coldplay酷玩乐队《Viva la Vida》的音乐内涵
Filmora 13 AI音乐生成器:创意视频配乐新纪元
AI音乐创作:颠覆传统,开启音乐新纪元
雷小兔ai智能写作如何生成日记_雷小兔ai智能写作日记模板调用【步骤】
Depseek如何让提示词包含上下文_Depseek上下文补充提示词写法【步骤】
千问怎么使用插件功能_千问插件调用与功能扩展【教程】
打破传统,拥抱幸福:公主如何找到真我?
Midjourney怎样生成网页_Midjourney生成网页教程【方法】
AI旅游攻略生成工具有哪些_一键生成行程规划的AI工具推荐
怎么用ai生成配色方案 AI设计色彩搭配与灵感获取【技巧】
如何用ChatGPT模拟面试并优化你的求职文书?
批改网AI检测工具如何对接学校系统_批改网AI检测工具系统对接与数据同步【步骤】
智行ai抢票怎么设置抢票截止时间_智行ai抢票截止时间设置与确认【步骤】
提升阅读理解:策略、技巧和有效方法全面指南
GitHub MCP Server:AI赋能代码管理的未来
AI面试助手:提升招聘效率的终极工具
Kling AI 2.5 Turbo:视频生成领域的颠覆者,深度评测与对比
教你用AI帮你写一份完整的用户调研报告,从数据到结论全搞定
2025 YouTube自动化终极指南:利用AI实现高效内容创作和多平台发布
通义千问网页版怎么清历史_通义千问历史清理方法【方法】
Midjourney怎样写风格化提示词_Midjourney风格提示词写法【教程】
豆包Ai官方网页版入口地址_豆包Ai官网在线使用入口
AI论文写作终极指南:DeepSeek与HIX Bypass结合使用教程
研究学者如何利用现有资源提升学术影响力
谷歌 Gemini AI 助手详解:功能、应用与隐私设置
DeepSeek写小说怎么用_DeepSeek写小说使用方法详细指南【教程】
美食ASMR:感官盛宴与解压体验
如何利用AI优化简历关键词?轻松通过ATS筛选系统
利用 DeepSeek 进行大规模 C++ 代码库审计
Gemini 辅助进行多平台社交媒体内容调度
Xeon E5-2667 V2性能评测:老平台焕发新生,游戏与工作负载表现分析
百度浏览器侧边栏ai怎么关 百度浏览器ai侧边栏隐藏
AI赋能保险销售:提升邮件营销效果的终极指南
亚马逊KDP电子书掘金:月入1万美元的秘密策略
韵律分析:为什么理解音乐歌词的韵式至关重要?
Runway Gen-2怎么用 Runway视频生成AI使用教程
SnappaAI排版如何生成社交媒体图_SnappaAI排版社媒图尺寸与风格选择【技巧】
AI超级英雄大乱斗:蜘蛛侠、死侍的爆笑奇幻之旅
ChatGPT怎么生成短视频脚本_ChatGPT脚本生成方法【指南】
批改网ai检测工具怎么设置检测严格度_批改网ai检测工具严格度调整【技巧】
教你用AI一键去除图片水印,操作简单效果惊人
Claude如何导出对话记录_Claude对话导出方法【方法】
DeepSeek编程怎么用_DeepSeek编程使用方法详细指南【教程】
AI伴侣:连接还是孤独?真实对话揭秘AI伦理困境
2025-07-31
南京市珐之弘网络技术有限公司专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。