项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-10 · 当前星标 ★ 13011
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Python 环境(README 未注明最低版本)
- 已安装 PyTorch
- torchvision(README 示例使用 resnet50)
- 可选:CUDA / MPS / HPU 设备以加速推理
安装与启动步骤
-
1安装 grad-cam
使用 pip 从 PyPI 安装官方包,包名为 grad-cam,导入时模块名为 pytorch_grad_cam。
pip install grad-cam -
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运行示例脚本
README 提供的 cam.py 示例脚本,需传入图像路径、CAM 方法名和结果输出目录,运行后生成可视化结果。
python cam.py --image-path <path_to_image> --method <method> --output-dir <output_dir_path> -
4指定运行设备
默认设备外可用 --device 切换为 cpu、cuda、cuda:0、mps 或 hpu,其他参数与上一步相同。
python cam.py --image-path <path_to_image> --device cuda --output-dir <output_dir_path> -
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
同类项目推荐
Awesome-LLMs-Pruning
开源
大模型剪枝论文一网打尽,调研选型不迷路
Awesome LLM pruning papers all-in-one repository with integrating all useful resourc···
DiffusionGeometry
开源
论文扩散几何方法的可运行复现实验代码
The code for "Computing Diffusion Geometry" (2026).
bigcodebench
开源
用真实编程难题,测出大模型代码能力的真实天花板
[ICLR'25] BigCodeBench: Benchmarking Code Generation Towards AGI
uncheatable_eval
开源
用最新网络数据动态出题,防止模型背答案刷分
Evaluating LLMs with Dynamic Data
genai-bench
开源
token 级压测 LLM 服务,选型调优有据可依
Genai-bench is a powerful benchmark tool designed for comprehensive token-level perf···
foundation-model-benchmarking-to···
开源
在 AWS 上跑任意模型,一键测出性能选型最优解
Foundation model benchmarking tool. Run any model on any AWS platform and benchmark ···
LLM-Agent-Evaluation-Survey
开源
一库收齐智能体评测论文,快速摸清评测方法
Top papers related to LLM-based agent evaluation
terminal-bench
开源
在真实终端里跑任务,量出 agent 到底行不行
Measuring and evolving with the frontier of agent work
Awesome-LM-SSP
开源
一网打尽大模型安全、隐私攻防的精华资料,快速跟上前沿。
A reading list for large models safety, security, and privacy (including Awesome LLM···
