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: 需要在電腦視覺任務中診斷並信任模型預測的開發者。
  • Data Scientists: 從事分類、物件偵測、語義分割或嵌入向量相似度研究的使用者。

Highlights

  • Broad Method Support: 包含從基於梯度的 (GradCAM++) 到無梯度的 (AblationCAM, ScoreCAM) 的廣泛技術。
  • Architecture Agnostic: 與常見的 CNN 與 Vision Transformers (ViT, SwinT) 相容。
  • Task Versatility: 支持分類、物件偵測、語義分割以及 CLIP 文字提示解釋。
  • Evaluation Metrics: 包含內建的評估指標(例如 ROAD 和 ARCC),用於定量地檢查解釋是否可靠。
  • Noise Reduction: 提供平滑化方法 (aug_smootheigen_smooth) 以產生更乾淨、更聚焦的視覺化結果。