Captum:PyTorch 的模型可解释性

Captum

3.5 | 164 | 0
类型:
开源项目
最后更新:
2025/08/25
资源描述:
Captum 是一个用于 PyTorch 的开源模型可解释性库。它支持各种模式,提供可扩展性,并与 PyTorch 模型无缝集成。
分享:

Captum 概述

Captum:用于 PyTorch 的模型可解释性

什么是 Captum?

Captum 是一个开源、可扩展的库,用于 PyTorch 中的模型可解释性研究。它提供工具来理解和归因 PyTorch 模型在各种模态(如视觉和文本)上的预测。

主要特性

  • 多模态: 支持跨模态的模型可解释性,包括视觉、文本等。
  • 构建于 PyTorch 之上: 支持大多数类型的 PyTorch 模型,并且只需对原始神经网络进行少量修改即可使用。
  • 可扩展: 用于可解释性研究的开源、通用库。 轻松实现新的算法并进行基准测试。

如何开始使用 Captum?

  1. 安装 Captum

    • 通过 conda(推荐):
    conda install captum -c pytorch
    
    • 通过 pip:
    pip install captum
    
  2. 创建和准备模型

以下示例演示了如何将 Captum 与简单的 ToyModel 一起使用:

import numpy as np
import torch
import torch.nn as nn
from captum.attr import IntegratedGradients

class ToyModel(nn.Module):
    def __init__(self):
        super().__init__()
        self.lin1 = nn.Linear(3, 3)
        self.relu = nn.ReLU()
        self.lin2 = nn.Linear(3, 2)

        # initialize weights and biases
        self.lin1.weight = nn.Parameter(torch.arange(-4.0, 5.0).view(3, 3))
        self.lin1.bias = nn.Parameter(torch.zeros(1,3))
        self.lin2.weight = nn.Parameter(torch.arange(-3.0, 3.0).view(2, 3))
        self.lin2.bias = nn.Parameter(torch.ones(1,2))

    def forward(self, input):
        return self.lin2(self.relu(self.lin1(input)))


model = ToyModel()
model.eval()

为了使计算具有确定性,让我们固定随机种子:

torch.manual_seed(123)
np.random.seed(123)

定义输入和基线张量:

input = torch.rand(2, 3)
baseline = torch.zeros(2, 3)
  1. 选择要实例化和应用的算法

此示例使用积分梯度:

ig = IntegratedGradients(model)
attributions, delta = ig.attribute(input, baseline, target=0, return_convergence_delta=True)
print('IG Attributions:', attributions)
print('Convergence Delta:', delta)

输出:

IG Attributions: tensor([[-0.5922, -1.5497, -1.0067],
                         [ 0.0000, -0.2219, -5.1991]])
Convergence Delta: tensor([2.3842e-07, -4.7684e-07])

为什么 Captum 很重要?

模型可解释性对于理解 AI 模型如何做出决策至关重要。 Captum 帮助研究人员和从业人员深入了解模型行为,这对于调试、改进和建立对 AI 系统的信任至关重要。

我可以在哪里使用 Captum?

Captum 可用于各种应用,包括:

  • 图像分类: 了解哪些像素对模型的预测贡献最大。
  • 文本分类: 识别驱动模型情感分析的关键单词或短语。
  • 其他 PyTorch 模型: 使用最少的修改来解释任何 PyTorch 模型。

"Captum"的最佳替代工具

MONAI
暂无图片
183 0

MONAI是一个用于医疗影像的开源AI框架,通过连接研究和临床部署来赋能创新。深受研究人员和临床医生的信赖。

医学影像
AI框架
深度学习
Treppan Technologies
暂无图片
174 0

Treppan Technologies:乌干达2024年领先的AI创业公司,提供AI开发、咨询和聊天机器人服务。 通过他们的专业知识释放可能性。

人工智能
机器学习
AI开发
Weights & Biases
暂无图片
229 0

Weights & Biases是领先的AI开发者平台,用于训练和微调模型、管理模型以及跟踪和评估GenAI应用程序。

MLOps
AI平台
模型训练
RunPod
暂无图片
245 0

在一个云中开发、训练和扩展AI模型。使用GPU Cloud启动按需GPU,使用Serverless扩展ML推理。

GPU
机器学习
fast.ai
暂无图片
189 0

fast.ai提供实用的深度学习课程、fastai for PyTorch和nbdev等软件工具以及一本书,致力于使神经网络更易于访问。

深度学习
人工智能
PyTorch
Determined AI
暂无图片
165 0

开源深度学习训练平台,内置超参数调整和分布式训练,以实现更快、更好的模型。

深度学习
分布式训练
超参数调整