pytorch-grad-cam

一键生成热力图,看清 AI 模型到底在看哪里

pytorch-grad-cam 是一个用于计算机视觉模型可解释性的高级工具库,基于 PyTorch 实现 Grad-CAM 及其多种变体。它解决了深度学习模型“黑盒”问题,帮助开发者直观理解模型关注图像的哪些区域。核心能力包括:支持 CNN、Vision Transformer 等主流架构,覆盖图像分类、目标检测、语义分割、图像相似度等任务;提供 Grad-CAM、Grad-CAM++、Score-CAM、Ablation-CAM 等十余种 CAM 算法;支持批量处理、自定义层选择、可视化结果保存。通过生成热力图,用户能快速定位模型决策依据,用于模型调试、错误分析、论文实验等场景。项目 API 简洁,文档完善,社区活跃,是 AI 可解释性领域广泛使用的工具。

开源 free 评测安全
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 12980
维护状态 维护中
是否开源 是
定价模式 free

项目数据

分类评测安全
开发团队jacobgil
所属国家
定价模式free
价格说明开源项目,MIT许可证,完全免费,可自行部署使用。
访问状态
是否开源是
开源协议MIT
主要语言Python
技术栈/模型class-activation-maps,computer-vision,deep-learning,explainable-ai,explainable-ml,grad-cam,image-classification,interpretability,interpretable-ai,interpretable-deep-learning,machine-learning,object-detection,pytorch,score-cam,vision-transformers,visualizations,xai
GitHub 星标★ 12980
30天Star增速
HF 下载量
上线时间2017-05-31 00:00:00
最近更新2026-09-22 00:00:00
维护状态维护中
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-10
浏览次数6

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 5 步

环境要求

  • Python 环境(README 未注明最低版本)
  • 已安装 PyTorch
  • torchvision(README 示例使用 resnet50)
  • 可选:CUDA / MPS / HPU 设备以加速推理

安装与启动步骤

  1. 1安装 grad-cam

    使用 pip 从 PyPI 安装官方包,包名为 grad-cam,导入时模块名为 pytorch_grad_cam。

    pip install grad-cam
  2. 2加载模型与图像

    按 README 示例用 torchvision 加载 resnet50,指定 target_layers(如 model.layer4[-1]),并自行准备 input_tensor 输入张量。

    from pytorch_grad_cam import GradCAM, HiResCAM, ScoreCAM, GradCAMPlusPlus, AblationCAM, XGradCAM, EigenCAM, FullGrad
    from pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget
    from pytorch_grad_cam.utils.image import show_cam_on_image
    from torchvision.models import resnet50, ResNet50_Weights
    
    model = resnet50(weights=ResNet50_Weights.DEFAULT)
    target_layers = [model.layer4[-1]]
  3. 3运行示例脚本

    README 提供的 cam.py 示例脚本,需传入图像路径、CAM 方法名和结果输出目录,运行后生成可视化结果。

    python cam.py --image-path  --method  --output-dir 
  4. 4指定运行设备

    默认设备外可用 --device 切换为 cpu、cuda、cuda:0、mps 或 hpu,其他参数与上一步相同。

    python cam.py --image-path  --device cuda --output-dir 
  5. 5调整批大小

    ScoreCAM、AblationCAM 等方法需要大量前向传播,可用 cam.batch_size 属性控制批量大小以提升效率。

    cam.batch_size = 8

关键配置

配置项必填说明示例
image-path是示例脚本的输入图像路径--image-path ./examples/cat.jpg
output-dir是CAM 可视化结果的输出目录--output-dir ./outputs
method否选择 CAM 方法,如 GradCAM、ScoreCAM、LayerCAM 等--method GradCAM
device否运行设备:cpu、cuda、cuda:0、mps 或 hpu--device cuda
batch_size否Python 中通过 cam.batch_size 控制批量大小cam.batch_size = 8

如何确认成功

示例脚本运行结束后,可在 output-dir 指定的目录中看到生成的 CAM 热力图可视化图片。

常见问题

Q:支持哪些 CAM 方法?

A:可选 GradCAM、HiResCAM、ScoreCAM、GradCAMPlusPlus、AblationCAM、XGradCAM、LayerCAM、FullGrad、EigenCAM、ShapleyCAM、FinerCAM、SegEigenCAM、RefineCAM。

Q:ScoreCAM、AblationCAM 运行很慢怎么办?

A:它们需要大量前向传播,README 说明其提供批量实现,可通过设置 cam.batch_size 控制批大小来改善效率。

Q:如何用 GPU 运行示例脚本?

A:在命令中加上 --device 参数,例如 --device cuda、--device cuda:0,也支持 mps、hpu 和 cpu。

Q:能用于哪些任务和模型?

A:README 称已测试常见 CNN 网络与 Vision Transformer,支持图像分类、目标检测、语义分割、嵌入相似度等场景。

注意事项

  • cam.py 是仓库自带的示例脚本,README 未给出获取仓库的克隆命令,请自行从 GitHub 项目页获取。
  • README 未注明 Python 或 PyTorch 的最低版本要求,环境不兼容时请参考官方文档。
  • 使用自己的模型时需自行构造 input_tensor 并正确指定 target_layers,否则无法生成 CAM。
  • 进阶教程与更多用法见官方文档 https://jacobgil.github.io/pytorch-gradcam-book 。

核心亮点

  • 支持 10+ 种 CAM 变体,如 Grad-CAM、Score-CAM、Ablation-CAM,覆盖主流需求
  • 兼容 CNN 和 ViT,支持分类、检测、分割等任务,应用面广
  • API 设计简洁,几行代码即可生成热力图,上手成本低

不足之处

  • 对超大模型或高分辨率图像,计算热力图耗时较长
  • 部分 CAM 变体(如 Ablation-CAM)计算开销大,影响效率
  • 文档/社区待观察

适用场景

  • 模型调试:定位模型误分类原因,检查是否关注错误特征
  • 学术研究:在论文中可视化模型注意力,增强可解释性论证
  • 工业质检:验证模型是否基于缺陷区域做判断,提升可信度

替代项目

captum、torchcam、tf-explain

项目介绍

pytorch-grad-cam 是评测安全领域的开源项目,由 jacobgil 开发,2017 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(12,980)位列前 4%,在评测安全分类的 458 个项目里位列前 3%。

近 44 天,它的 GitHub 星标从 12,951 增加到 12,980,净增 29。

项目仍在小幅维护中,最近一次代码更新于 2026-09-22。MIT许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:模型调试:定位模型误分类原因,检查是否关注错误特征。同类可对比的替代方案包括 captum、torchcam、tf-explain。

同类项目推荐

akto 开源

给 AI 应用做安全体检,防提示注入和数据泄露

Akto is the fastest growing AI Security platform for your teams to secure AI agents,···

★ 1517 2026-08-20
XSafeClaw 开源

给 AI 智能体装上安全盾,自动红队测试找漏洞

Introducing XSafeClaw: The Open-Source Agent Safety Platform from Fudan University

★ 164 2026-08-10
deepteam 开源

自动模拟越狱攻击,提前测出 LLM 安全漏洞

DeepTeam is a framework to red team LLMs and AI agents.

★ 2937 2026-09-12