Captum 概述
Captum:用于 PyTorch 的模型可解释性
什么是 Captum?
Captum 是一个开源、可扩展的库,用于 PyTorch 中的模型可解释性研究。它提供工具来理解和归因 PyTorch 模型在各种模态(如视觉和文本)上的预测。
主要特性
- 多模态: 支持跨模态的模型可解释性,包括视觉、文本等。
- 构建于 PyTorch 之上: 支持大多数类型的 PyTorch 模型,并且只需对原始神经网络进行少量修改即可使用。
- 可扩展: 用于可解释性研究的开源、通用库。 轻松实现新的算法并进行基准测试。
如何开始使用 Captum?
安装 Captum:
- 通过 conda(推荐):
conda install captum -c pytorch
- 通过 pip:
pip install captum
创建和准备模型:
以下示例演示了如何将 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)
- 选择要实例化和应用的算法:
此示例使用积分梯度:
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"的最佳替代工具

暂无图片

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

暂无图片

暂无图片

暂无图片

暂无图片