深度学习:基于PyTorch的模型解释工具Captum

深度学习:基于PyTorch的模型解释工具Captum

  • 引言
  • 简介
  • 示例
    • 安装
    • 解释模型的预测
    • 解释文本模型
      • 情绪分析
      • 问答
    • 解释视觉模型
      • 特征分析
      • 特征消融
      • 鲁棒性
    • 解释多模态模型

引言

当我们训练神经网络模型时,我们通常只关注模型的整体性能,例如准确率或损失函数值。然而,理解模型为何做出特定预测,哪些输入特征对模型决策影响最大,对于构建可解释、可信赖和健壮的模型至关重要。为此,Facebook AI研究团队开发了captum库,这是一个开源项目,旨在帮助研究人员和开发人员更好地理解PyTorch模型的运行机制。

简介

Captum(拉丁文"comprehension"的词根,意为理解)是一个开源、可扩展的库,用于构建在 PyTorch 上的模型可解释性。Captum能够与任何PyTorch构建的模型相适配。它提供了多种解释算法,包括Integrated Gradients、Deep Lift、Feature Ablation等。这些算法可以针对单个输出或一组输出应用,并可在CPU或CUDA上运行。Captum还提供了一个交互式可视化工具,让用户能够轻松地观察和比较不同特征的影响。更多详细内容可见官网https://captum.ai/。

示例

以下展示了如何安装和使用captum:

安装

# conda 安装
conda install captum -c pytorch
# pip 安装
pip install captum

解释模型的预测

利用Integrated Gradients算法分析输入对于目标输出的贡献度,并打印出结果。

from captum.attr import IntegratedGradients# 假设model是我们用PyTorch构建和训练好的模型
# input是模型的输入数据
# target是我们想要解释的分类输出ig = IntegratedGradients(model)
attr, delta = ig.attribute(input, target=target, return_convergence_delta=True)
print('Integrated Gradients Attribution:', attr)
print('Convergence Delta:', delta)

解释文本模型

情绪分析

此示例加载预训练的CNN模型使用Integrated Gradients算法对IMDB数据集进行情绪分析。

在这里插入图片描述

问答

此示例使用 Captum 解释用于问答的 BERT 模型,使用 Hugging Face 的预训练模型,并在 SQUAD 数据集上进行了微调,并展示了如何使用 hooks 来检查和更好地理解嵌入和注意力层。
在这里插入图片描述
在这里插入图片描述
此示例使用attribution和Integrated Gradients算法分析注意力矩阵。此分析有助于我们识别不同tokens之间的强交互对,以进行特定模型预测。我们将我们的发现与向量norm进行比较,结果表明attribution分数比向量norm更有意义。
在这里插入图片描述

解释视觉模型

特征分析

此示例加载预训练的CNN模型使用Integrated Gradients和DeepLIFT算法对CIFAR数据集进行特征分析。
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

特征消融

此示例利用分割掩码来定义输入特征的消融组,并展示了这种分析如何帮助理解输入的哪些部分影响模型中的特定目标。
在这里插入图片描述

鲁棒性

此示例将 FGSM 和 PGD 等鲁棒性攻击以及 MinParamPerturbation 和 AttackComparator 等鲁棒性指标应用于在 CIFAR 数据集上训练的模型。除此之外,它还演示了如何将鲁棒性技术与归因算法结合使用。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

解释多模态模型

此示例针对开源视觉问答(VQA)模型,使用Integrated Gradients算法解释了几个测试问题的输出,并分析了模型文本和视觉部分的归因分数。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/287895.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AWS EC2设置root登录

在使用亚马逊的服务器时,官方默认是使用密钥登录,跟国内的云服务器差别较大,本文记录下,如何开放AWS EC2的root登录。 一、通过网页版或者XShell登录服务器 这里略过 二、设置root账户密码 # 切换 root sudo -i # 设置或修改密…

考研数学|《1800》《1000》《880》《660》最佳搭配使用方法

直接说结论:基础不好先做1800、强化之前660,强化可选880/1000题。 首先,传统习题册存在的一个问题是题量较大,但难度波动较大。《汤家凤1800》和《张宇1000》题量庞大,但有些题目难度不够平衡,有些过于简单…

【开发篇】六、查询大量数据导致内存溢出

文章目录 1、溢出场景2、快照文件分析3、本地环境复现4、结论5、解决思路 记录一个问题,工作中有个数据处理服务OOM,查了下镜像的dockerfile,发现JVM参数如下。很明显,一个数据服务,里面经手大量的数据对象&#xff0c…

ArcGIS二次开发(一)——搭建开发环境以及第一个简单的ArcGIS Engine 程序

Arcgis10.2、Arcgis Engine10.2与Microsoft Visual Studio 2012的版本进行安装 1、推荐教程与安装包2、安装顺序3、安装成功测试VS新建项目可以创建ArcGIS项目,并且在VS中拖拽ArcGIS工具 4、搭建第一个简单的ArcGIS Engine 程序 ArcEngine和VS版本是有对应的&#x…

【SpringBoot整合系列】SpringBoot3.x整合Swagger

目录 产生背景官方解释:作用SpringBoot3整合Swagger注意事项swagger3 常用注解SpringBoot3.x整合Swagger1.创建工程(jdk:17,boot:3.2.4)2.引入pom依赖3.application.yml添加配置4.添加swagger3.0配置5.控制器层(Controller)6.模型层(Model)7.启动并测试【Get请求接口…

一口气搞懂分库分表 12 种分片算法,大厂都在用

前言 本文是《ShardingSphere5.x分库分表原理与实战》系列的第五篇文章,我们一起梳理下ShardingSphere框架中的核心部分分片策略和分片算法,其内部针为我们提供了多种分片策略和分片算法,来应对不同的业务场景,本着拿来即用的原则…

大学教材《C语言程序设计》(浙大版)课后习题解析 | 第三、四章

概述 本文主要提供《C语言程序设计》(浙大版) 第三、四章的课后习题解析,以方便同学们完成题目后作为参考对照。后续将更新第五、六章节课后习题解析,如想了解更多,请持续关注该专栏。 专栏直达链接:《C语言程序设计》(浙大版)_孟…

文件IO的方式读取jpeg图片的分辨率

1、读取jpeg图片分辨率的两种方式 1.1 使用libjpeg库 可以使用libjpeg库读取JPEG图像文件&#xff0c;并获取图像的分辨率&#xff08;宽度和高度&#xff09;&#xff0c;简单demo示例如下&#xff1a; #include <stdio.h> #include <jpeglib.h>int main() {st…

接口测试、postman、测试点提取【主】

接口测试是测试系统组件间接口的一种测试 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点 测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系 文章目录 HTTP接口 & Web Service接口RESTful接口…

sentinel热点参数流控

1、概念 热点参数限流会统计传入参数中的热点参数&#xff0c;并根据配置的限流阈值与模式&#xff0c;对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量控制&#xff0c;仅对包含热点参数的资源调用生效。 2、示例 2.1、目的 对于如下的/get接口的参…

what is apache?

Apache 通常指 Apache Software Foundation (ASF) 或 Apache HTTP Server&#xff0c;两者都是计算机软件领域的重要实体。 Apache 软件基金会 (ASF)&#xff1a;Apache 软件基金会是一个开发开源软件项目的非营利组织。它为涵盖软件开发各个方面的广泛项目提供支持&#xff0c…

Redis 教程系列之Redis PHP 使用 Redis(十二)

PHP 使用 Redis 安装 开始在 PHP 中使用 Redis 前&#xff0c; 我们需要确保已经安装了 redis 服务及 PHP redis 驱动&#xff0c;且你的机器上能正常使用 PHP。 接下来让我们安装 PHP redis 驱动&#xff1a;下载地址为:https://github.com/phpredis/phpredis/releases。 P…

使用启智OpenI平台体验Open-Sora笔记

OpenI准备部分 镜像代码仓 创建云脑任务 新建调试任务 镜像选择 如果不想体验整个安装配置过程的话&#xff0c;我准备了一个Open-Sora的环境镜像应该可以直接开箱即用 地址&#xff1a; 192.168.204.22:5000/default-workspace/99280a9940ae44ca8f5892134386fddb/image:Open…

sql注入五-WEB攻防-注入工具SQLMAPTamper编写指纹修改高权限操作目录架构

演示案例&#xff1a; 数据猜解-库表列数据&字典权限操作-文件&命令&交互式提交方法-POST&HEAD&JSON绕过模块-Tamper脚本-使用&开发分析拓展-代理&调试&指纹&风险&等级 #参考&#xff1a; https://www.cnblogs.com/bmjoker/p/9326258.…

PMBOK第八版、项目管理AI标准...PMI标准今年有这些进展

项目管理实践标准不断在演变&#xff0c;PMI作为项目管理领域的权威机构&#xff0c;一直致力于与全球各行各业的项目实践者一同探索和研究最新的行业标准&#xff0c;确保PMI标准符合全球项目专业人士当前能力建设与职业发展的需要。 今年以来&#xff0c;我们发布了一系列PM…

NetSuite学习笔记 - 人工成本字段如何按员工所属公司货币显示

在员工档案中输入了人工成本1000&#xff0c;在列表中显示的跟详情中显示的不一样&#xff1f;为什么&#xff1f;怎么办&#xff1f; 详情页中维护人工成本为1000 列表中显示为140.77 1. 开始我以为是因为用的中文环境&#xff0c;可能选了两个不同的字段&#xff0c;切换到英…

学习笔记:MYSQL数据库基础知识

MYSQL数据库基础知识学习笔记 MYSQL基础学习数据库相关概念现主流数据库排名数据模型SQL分类SQL数据库基础操作 2024/3/27 学习资料&#xff1a;黑马程序员:MYSQL MYSQL基础学习 数据库和数据库管理系统(DBMS) 数据库: 是存储数据的集合&#xff0c;包括表、视图、索引等对象…

client-go中ListAndWatch机制,informer源码详解

文章首发地址&#xff1a; 学一下 (suxueit.com)https://suxueit.com/article_detail/s9UMb44BWZdDRfKqFv22 先上一张&#xff0c;不知道是那个大佬画的图 简单描述一下流程 client-go封装部分 以pod为例 、先List所有的Pod资源&#xff0c;然后通过已经获取的pod资源的最大版…

阿里云 -- 连接云服务器ECS、管理云服务器ECS、WordPress 页面配置

连接云服务器ECS 1. 远程连接云服务器ECS&#xff0c;点击实例最右侧操作列的远程连接按钮&#xff0c;并在弹出的对话框中点击立即登录 2. 登录云服务器ECS&#xff0c;通过密码认证方式&#xff0c;输入用户名和密码 提示&#xff1a;新创建的ECS实例状态即使为运行中&#…

微信投票小程序源码系统:创建新活动+多模板一键切换 带完整的安装代码包以及搭建教程

随着社交媒体的普及&#xff0c;投票活动已经成为人们表达意见、参与决策的重要方式。微信小程序作为一种新兴的应用形态&#xff0c;具有用户基数大、使用门槛低的特点&#xff0c;非常适合举办投票活动。然而&#xff0c;对于普通用户来说&#xff0c;开发一个功能完善的投票…