jacobgil/pytorch-grad-cam

Advanced AI Explainability for computer vision. Support for CNNs, Vision Transformers, Classification, Object detection, Segmentation, Image similarity and more.

What it solves

该项目提供了一套完整的计算机视觉像素归因 (Pixel Attribution) 方法集,允许开发者和研究人员诊断模型预测,并理解图像中的哪些部分导致了特定的输出结果。它将深度学习模型的“黑盒”特性转化为可视化解释(类别激活映射),使在生产环境或开发过程中对模型进行调试变得更加容易。

How it works

该库实现了多种最先进的可解释性方法(例如 GradCAM, HiResCAM, ScoreCAM, 和 EigenCAM),这些方法会分析 PyTorch 模型的激活值和梯度。它通过两个主要概念来支持灵活的架构:

  • Reshape Transforms: 将模型内部的激活值(可能因 CNN 和 Vision Transformers 而异)转换为空间图像格式。
  • Model Targets: 可调用对象,用于过滤模型输出以隔离需要解释的特定标量值(例如:某个特定的类别类别)。

Who it’s for

  • AI Researchers: 正在开发新可解释性方法或对现有方法进行基准测试的人员。
  • ML Engineers: Developers 正在进行计算机视觉任务中模型预测的诊断-并信任模型预测的开发者。
  • Data Scientists: 从事分类、目标检测、语义分割或嵌入相似度的用户。

Highlights

  • Broad Method Support: 包含从基于梯度的 (GradCAM++) 到无梯度的 (AblationCAM, ScoreCAM) 的广泛技术。
  • Architecture Agnostic: 适用于常见的 CNN 和 Vision Transformers (ViT, SwinT)。
  • Task Versatility: 支持分类、目标检测、语义分割以及 CLIP 文本提示解释。
  • n/a
  • Evaluation Metrics: 包含内置的评估指标(例如 ROAD 和 ARCC)以定量地检查解释是否可靠。
  • Noise Reduction: 提供平滑方法 (aug_smootheigen_smooth) 以产生更清晰、更聚焦的可视化结果。