[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9643":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":44,"readmeContent":45,"aiSummary":46,"trendingCount":16,"starSnapshotCount":16,"syncStatus":47,"lastSyncTime":48,"discoverSource":49},9643,"pytorch-grad-cam","jacobgil\u002Fpytorch-grad-cam","jacobgil","Advanced AI Explainability for computer vision.  Support for CNNs, Vision Transformers, Classification, Object detection, Segmentation, Image similarity and more.","https:\u002F\u002Fjacobgil.github.io\u002Fpytorch-gradcam-book",null,"Python",12860,1707,45,154,0,1,11,61,8,44.7,"MIT License",false,"master",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"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","2026-06-12 02:02:10","[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n![Build Status](https:\u002F\u002Fgithub.com\u002Fjacobgil\u002Fpytorch-grad-cam\u002Fworkflows\u002FTests\u002Fbadge.svg)\n[![Downloads](https:\u002F\u002Fstatic.pepy.tech\u002Fpersonalized-badge\u002Fgrad-cam?period=month&units=international_system&left_color=black&right_color=brightgreen&left_text=Monthly%20Downloads)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fgrad-cam)\n[![Downloads](https:\u002F\u002Fstatic.pepy.tech\u002Fpersonalized-badge\u002Fgrad-cam?period=total&units=international_system&left_color=black&right_color=blue&left_text=Total%20Downloads)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fgrad-cam)\n\n# Advanced AI explainability for PyTorch\n\n`pip install grad-cam`\n\nDocumentation with advanced tutorials: [https:\u002F\u002Fjacobgil.github.io\u002Fpytorch-gradcam-book](https:\u002F\u002Fjacobgil.github.io\u002Fpytorch-gradcam-book)\n\n\nThis is a package with state of the art methods for Explainable AI for computer vision.\nThis can be used for diagnosing model predictions, either in production or while\ndeveloping models.\nThe aim is also to serve as a benchmark of algorithms and metrics for research of new explainability methods.\n\n⭐ Comprehensive collection of Pixel Attribution methods for Computer Vision.\n\n⭐ Tested on many Common CNN Networks and Vision Transformers.\n\n⭐ Advanced use cases: Works with Classification, Object Detection, Semantic Segmentation, Embedding-similarity and more.\n\n⭐ Includes smoothing methods to make the CAMs look nice.\n\n⭐ High performance: full support for batches of images in all methods.\n\n⭐ Includes metrics for checking if you can trust the explanations, and tuning them for best performance.\n\n\n![visualization](https:\u002F\u002Fgithub.com\u002Fjacobgil\u002Fjacobgil.github.io\u002Fblob\u002Fmaster\u002Fassets\u002Fcam_dog.gif?raw=true\n)\n\n| Method              | What it does                                                                                                                |\n|---------------------|-----------------------------------------------------------------------------------------------------------------------------|\n| GradCAM             | Weight the 2D activations by the average gradient                                                                           |\n| HiResCAM            | Like GradCAM but element-wise multiply the activations with the gradients; provably guaranteed faithfulness for certain models |\n| GradCAMElementWise  | Like GradCAM but element-wise multiply the activations with the gradients then apply a ReLU operation before summing        |\n| GradCAM++           | Like GradCAM but uses second order gradients                                                                                |\n| XGradCAM            | Like GradCAM but scale the gradients by the normalized activations                                                          |\n| AblationCAM         | Zero out activations and measure how the output drops (this repository includes a fast batched implementation)              |\n| ScoreCAM            | Perbutate the image by the scaled activations and measure how the output drops                                              |\n| EigenCAM            | Takes the first principle component of the 2D Activations (no class discrimination, but seems to give great results)        |\n| EigenGradCAM        | Like EigenCAM but with class discrimination: First principle component of Activations*Grad. Looks like GradCAM, but cleaner |\n| LayerCAM            | Spatially weight the activations by positive gradients. Works better especially in lower layers                             |\n| FullGrad            | Computes the gradients of the biases from all over the network, and then sums them                                          |\n| Deep Feature Factorizations           | Non Negative Matrix Factorization on the 2D activations                                                   |\n| KPCA-CAM            | Like EigenCAM but with Kernel PCA instead of PCA                                                                            |            \n| FEM                 | A gradient free method that binarizes activations by an activation > mean + k * std rule.                                   |\n| ShapleyCAM          | Weight the activations using the gradient and Hessian-vector product.|\n| FinerCAM                |  Improves fine-grained classification by comparing similar classes, suppressing shared features and highlighting discriminative details.    |\n| SegEigenCAM         | Like EigenCAM but with gradient weighting (absolute gradients ⊙ activations) before SVD and sign correction to fix SVD sign ambiguity; designed for semantic segmentation |\n## Visual Examples\n\n| What makes the network think the image label is 'pug, pug-dog' | What makes the network think the image label is 'tabby, tabby cat' | Combining Grad-CAM with Guided Backpropagation for the 'pug, pug-dog' class |\n| ---------------------------------------------------------------|--------------------|-----------------------------------------------------------------------------|\n \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fjacobgil\u002Fpytorch-grad-cam\u002Fblob\u002Fmaster\u002Fexamples\u002Fdog.jpg?raw=true\" width=\"256\" height=\"256\"> | \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fjacobgil\u002Fpytorch-grad-cam\u002Fblob\u002Fmaster\u002Fexamples\u002Fcat.jpg?raw=true\" width=\"256\" height=\"256\"> | \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fjacobgil\u002Fpytorch-grad-cam\u002Fblob\u002Fmaster\u002Fexamples\u002Fcam_gb_dog.jpg?raw=true\" width=\"256\" height=\"256\"> |\n\n## Object Detection and Semantic Segmentation\n| Object Detection | Semantic Segmentation |\n| -----------------|-----------------------|\n| \u003Cimg src=\".\u002Fexamples\u002Fboth_detection.png\" width=\"256\" height=\"256\"> | \u003Cimg src=\".\u002Fexamples\u002Fcars_segmentation.png\" width=\"256\" height=\"200\"> |\n\n| 3D Medical Semantic Segmentation |\n| -------------------------- |\n| \u003Cimg src=\".\u002Fexamples\u002Fmultiorgan_segmentation.gif\" width=\"539\">|\n\n## Explaining similarity to other images \u002F embeddings\n\u003Cimg src=\".\u002Fexamples\u002Fembeddings.png\">\n\n## Deep Feature Factorization\n\u003Cimg src=\".\u002Fexamples\u002Fdff1.png\">\n\u003Cimg src=\".\u002Fexamples\u002Fdff2.png\">\n\n## CLIP\n| Explaining the text prompt \"a dog\" | Explaining the text prompt \"a cat\" |\n| -----------------------------------|------------------------------------|\n \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fjacobgil\u002Fpytorch-grad-cam\u002Fblob\u002Fmaster\u002Fexamples\u002Fclip_dog.jpg?raw=true\" width=\"256\" height=\"256\"> | \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fjacobgil\u002Fpytorch-grad-cam\u002Fblob\u002Fmaster\u002Fexamples\u002Fclip_cat.jpg?raw=true\" width=\"256\" height=\"256\"> |\n\n## Classification\n\n#### Resnet50:\n| Category  | Image | GradCAM  |  AblationCAM |  ScoreCAM |\n| ---------|-------|----------|------------|------------|\n| Dog    | ![](.\u002Fexamples\u002Fdog_cat.jfif) | ![](.\u002Fexamples\u002Fresnet50_dog_gradcam_cam.jpg)     |  ![](.\u002Fexamples\u002Fresnet50_dog_ablationcam_cam.jpg)   |![](.\u002Fexamples\u002Fresnet50_dog_scorecam_cam.jpg)   |\n| Cat    | ![](.\u002Fexamples\u002Fdog_cat.jfif?raw=true) | ![](.\u002Fexamples\u002Fresnet50_cat_gradcam_cam.jpg?raw=true)     |  ![](.\u002Fexamples\u002Fresnet50_cat_ablationcam_cam.jpg?raw=true)   |![](.\u002Fexamples\u002Fresnet50_cat_scorecam_cam.jpg)   |\n\n#### Vision Transfomer (Deit Tiny):\n| Category  | Image | GradCAM  |  AblationCAM |  ScoreCAM |\n| ---------|-------|----------|------------|------------|\n| Dog    | ![](.\u002Fexamples\u002Fdog_cat.jfif) | ![](.\u002Fexamples\u002Fvit_dog_gradcam_cam.jpg)     |  ![](.\u002Fexamples\u002Fvit_dog_ablationcam_cam.jpg)   |![](.\u002Fexamples\u002Fvit_dog_scorecam_cam.jpg)   |\n| Cat    | ![](.\u002Fexamples\u002Fdog_cat.jfif) | ![](.\u002Fexamples\u002Fvit_cat_gradcam_cam.jpg)     |  ![](.\u002Fexamples\u002Fvit_cat_ablationcam_cam.jpg)   |![](.\u002Fexamples\u002Fvit_cat_scorecam_cam.jpg)   |\n\n#### Swin Transfomer (Tiny window:7 patch:4 input-size:224):\n| Category  | Image | GradCAM  |  AblationCAM |  ScoreCAM |\n| ---------|-------|----------|------------|------------|\n| Dog    | ![](.\u002Fexamples\u002Fdog_cat.jfif) | ![](.\u002Fexamples\u002FswinT_dog_gradcam_cam.jpg)     |  ![](.\u002Fexamples\u002FswinT_dog_ablationcam_cam.jpg)   |![](.\u002Fexamples\u002FswinT_dog_scorecam_cam.jpg)   |\n| Cat    | ![](.\u002Fexamples\u002Fdog_cat.jfif) | ![](.\u002Fexamples\u002FswinT_cat_gradcam_cam.jpg)     |  ![](.\u002Fexamples\u002FswinT_cat_ablationcam_cam.jpg)   |![](.\u002Fexamples\u002FswinT_cat_scorecam_cam.jpg)   |\n\n\n# Metrics and Evaluation for XAI\n\n\u003Cimg src=\".\u002Fexamples\u002Fmetrics.png\">\n\u003Cimg src=\".\u002Fexamples\u002Froad.png\">\n\n----------\n\n# Usage examples\n\n```python\nfrom pytorch_grad_cam import GradCAM, HiResCAM, ScoreCAM, GradCAMPlusPlus, AblationCAM, XGradCAM, EigenCAM, FullGrad\nfrom pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget\nfrom pytorch_grad_cam.utils.image import show_cam_on_image\nfrom torchvision.models import resnet50, ResNet50_Weights\n\nmodel = resnet50(weights=ResNet50_Weights.DEFAULT)\ntarget_layers = [model.layer4[-1]]\ninput_tensor = # Create an input tensor image for your model..\n# Note: input_tensor can be a batch tensor with several images!\n\n# We have to specify the target we want to generate the CAM for.\ntargets = [ClassifierOutputTarget(281)]\n\n# Construct the CAM object once, and then re-use it on many images.\nwith GradCAM(model=model, target_layers=target_layers) as cam:\n  # You can also pass aug_smooth=True and eigen_smooth=True, to apply smoothing.\n  grayscale_cam = cam(input_tensor=input_tensor, targets=targets)\n  # In this example grayscale_cam has only one image in the batch:\n  grayscale_cam = grayscale_cam[0, :]\n  visualization = show_cam_on_image(rgb_img, grayscale_cam, use_rgb=True)\n  # You can also get the model outputs without having to redo inference\n  model_outputs = cam.outputs\n```\n\n[cam.py](https:\u002F\u002Fgithub.com\u002Fjacobgil\u002Fpytorch-grad-cam\u002Fblob\u002Fmaster\u002Fcam.py) has a more detailed usage example.\n\n----------\n# Choosing the layer(s) to extract activations from\nYou need to choose the target layer to compute the CAM for.\nSome common choices are:\n- FasterRCNN: model.backbone\n- Resnet18 and 50: model.layer4[-1]\n- VGG, densenet161 and mobilenet: model.features[-1]\n- mnasnet1_0: model.layers[-1]\n- ViT: model.blocks[-1].norm1\n- SwinT: model.layers[-1].blocks[-1].norm1\n\n\nIf you pass a list with several layers, the CAM will be averaged accross them.\nThis can be useful if you're not sure what layer will perform best.\n\n----------\n\n# Adapting for new architectures and tasks\n\nMethods like GradCAM were designed for and were originally mostly applied on classification models, \nand specifically CNN classification models.\nHowever you can also use this package on new architectures like Vision Transformers, and on non classification tasks like Object Detection or Semantic Segmentation.\n\nThe be able to adapt to non standard cases, we have two concepts.\n- The reshape transform - how do we convert activations to represent spatial images ?\n- The model targets - What exactly should the explainability method try to explain ?\n\n## The reshape_transform argument\nIn a CNN the intermediate activations in the model are a mult-channel image that have the dimensions channel x rows x cols,\nand the various explainabiltiy methods work with these to produce a new image.\n\nIn case of another architecture, like the Vision Transformer, the shape might be different, like (rows x cols + 1) x channels, or something else.\nThe reshape transform converts the activations back into a multi-channel image, for example by removing the class token in a vision transformer. \nFor examples, check [here](https:\u002F\u002Fgithub.com\u002Fjacobgil\u002Fpytorch-grad-cam\u002Fblob\u002Fmaster\u002Fpytorch_grad_cam\u002Futils\u002Freshape_transforms.py)\n\n## The model_target argument\nThe model target is just a callable that is able to get the model output, and filter it out for the specific scalar output we want to explain.\n\nFor classification tasks, the model target will typically be the output from a specific category.\nThe `targets` parameter passed to the CAM method can then use `ClassifierOutputTarget`:\n```python\ntargets = [ClassifierOutputTarget(281)]\n```\n\nHowever for more advanced cases, you might want a different behaviour.\nCheck [here](https:\u002F\u002Fgithub.com\u002Fjacobgil\u002Fpytorch-grad-cam\u002Fblob\u002Fmaster\u002Fpytorch_grad_cam\u002Futils\u002Fmodel_targets.py) for more examples.\n\n----------\n\n# Tutorials\nHere you can find detailed examples of how to use this for various custom use cases like object detection:\n\nThese point to the new documentation jupter-book for fast rendering.\nThe jupyter notebooks themselves can be found under the tutorials folder in the git repository.\n\n- [Notebook tutorial: XAI Recipes for the HuggingFace 🤗 Image Classification Models](\u003Chttps:\u002F\u002Fjacobgil.github.io\u002Fpytorch-gradcam-book\u002FHuggingFace.html>)\n\n- [Notebook tutorial: Deep Feature Factorizations for better model explainability](\u003Chttps:\u002F\u002Fjacobgil.github.io\u002Fpytorch-gradcam-book\u002FDeep%20Feature%20Factorizations.html>)\n\n- [Notebook tutorial: Class Activation Maps for Object Detection with Faster-RCNN](\u003Chttps:\u002F\u002Fjacobgil.github.io\u002Fpytorch-gradcam-book\u002FClass%20Activation%20Maps%20for%20Object%20Detection%20With%20Faster%20RCNN.html>)\n\n- [Notebook tutorial: Class Activation Maps for YOLO5](\u003Chttps:\u002F\u002Fjacobgil.github.io\u002Fpytorch-gradcam-book\u002FEigenCAM%20for%20YOLO5.html>)\n\n- [Notebook tutorial: Class Activation Maps for Semantic Segmentation](\u003Chttps:\u002F\u002Fjacobgil.github.io\u002Fpytorch-gradcam-book\u002FClass%20Activation%20Maps%20for%20Semantic%20Segmentation.html>)\n\n- [Notebook tutorial: Adapting pixel attribution methods for embedding outputs from models](\u003Chttps:\u002F\u002Fjacobgil.github.io\u002Fpytorch-gradcam-book\u002FPixel%20Attribution%20for%20embeddings.html>)\n\n- [Notebook tutorial: May the best explanation win. CAM Metrics and Tuning](\u003Chttps:\u002F\u002Fjacobgil.github.io\u002Fpytorch-gradcam-book\u002FCAM%20Metrics%20And%20Tuning%20Tutorial.html>)\n\n- [How it works with Vision\u002FSwinT transformers](tutorials\u002Fvision_transformers.md)\n\n\n----------\n\n# Guided backpropagation\n\n```python\nfrom pytorch_grad_cam import GuidedBackpropReLUModel\nfrom pytorch_grad_cam.utils.image import (\n    show_cam_on_image, deprocess_image, preprocess_image\n)\ngb_model = GuidedBackpropReLUModel(model=model, device=model.device())\ngb = gb_model(input_tensor, target_category=None)\n\ncam_mask = cv2.merge([grayscale_cam, grayscale_cam, grayscale_cam])\ncam_gb = deprocess_image(cam_mask * gb)\nresult = deprocess_image(gb)\n```\n\n----------\n\n# Metrics and evaluating the explanations\n\n```python\nfrom pytorch_grad_cam.utils.model_targets import ClassifierOutputSoftmaxTarget\nfrom pytorch_grad_cam.metrics.cam_mult_image import CamMultImageConfidenceChange\n# Create the metric target, often the confidence drop in a score of some category\nmetric_target = ClassifierOutputSoftmaxTarget(281)\nscores, batch_visualizations = CamMultImageConfidenceChange()(input_tensor, \n  inverse_cams, targets, model, return_visualization=True)\nvisualization = deprocess_image(batch_visualizations[0, :])\n\n# State of the art metric: Remove and Debias\nfrom pytorch_grad_cam.metrics.road import ROADMostRelevantFirst, ROADLeastRelevantFirst\ncam_metric = ROADMostRelevantFirst(percentile=75)\nscores, perturbation_visualizations = cam_metric(input_tensor, \n  grayscale_cams, targets, model, return_visualization=True)\n\n# You can also average across different percentiles, and combine\n# (LeastRelevantFirst - MostRelevantFirst) \u002F 2\nfrom pytorch_grad_cam.metrics.road import ROADMostRelevantFirstAverage,\n                                          ROADLeastRelevantFirstAverage,\n                                          ROADCombined\ncam_metric = ROADCombined(percentiles=[20, 40, 60, 80])\nscores = cam_metric(input_tensor, grayscale_cams, targets, model)\n```\n\n\n# Smoothing to get nice looking CAMs\n\nTo reduce noise in the CAMs, and make it fit better on the objects,\ntwo smoothing methods are supported:\n\n- `aug_smooth=True`\n\n  Test time augmentation: increases the run time by x6.\n\n  Applies a combination of horizontal flips, and mutiplying the image\n  by [1.0, 1.1, 0.9].\n\n  This has the effect of better centering the CAM around the objects.\n\n\n- `eigen_smooth=True`\n\n  First principle component of `activations*weights`\n\n  This has the effect of removing a lot of noise.\n\n\n|AblationCAM | aug smooth | eigen smooth | aug+eigen smooth|\n|------------|------------|--------------|--------------------|\n![](.\u002Fexamples\u002Fnosmooth.jpg) | ![](.\u002Fexamples\u002Faugsmooth.jpg) | ![](.\u002Fexamples\u002Feigensmooth.jpg) | ![](.\u002Fexamples\u002Feigenaug.jpg) | \n\n----------\n\n# Running the example script:\n\nUsage: `python cam.py --image-path \u003Cpath_to_image> --method \u003Cmethod> --output-dir \u003Coutput_dir_path> `\n\n\nTo use with a specific device, like cpu, cuda, cuda:0, mps or hpu:\n`python cam.py --image-path \u003Cpath_to_image> --device cuda  --output-dir \u003Coutput_dir_path> `\n\n----------\n\nYou can choose between:\n\n`GradCAM` , `HiResCAM`, `ScoreCAM`, `GradCAMPlusPlus`, `AblationCAM`, `XGradCAM` , `LayerCAM`, `FullGrad`, `EigenCAM`, `ShapleyCAM`, `FinerCAM` and `SegEigenCAM`.\n\nSome methods like ScoreCAM and AblationCAM require a large number of forward passes,\nand have a batched implementation.\n\nYou can control the batch size with\n`cam.batch_size = `\n\n----------\n\n## Citation\nIf you use this for research, please cite. Here is an example BibTeX entry:\n\n```\n@misc{jacobgilpytorchcam,\n  title={PyTorch library for CAM methods},\n  author={Jacob Gildenblat and contributors},\n  year={2021},\n  publisher={GitHub},\n  howpublished={\\url{https:\u002F\u002Fgithub.com\u002Fjacobgil\u002Fpytorch-grad-cam}},\n}\n```\n\n----------\n\n# References\nhttps:\u002F\u002Farxiv.org\u002Fabs\u002F1610.02391 \u003Cbr>\n`Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization\nRamprasaath R. Selvaraju, Michael Cogswell, Abhishek Das, Ramakrishna Vedantam, Devi Parikh, Dhruv Batra`\n\nhttps:\u002F\u002Farxiv.org\u002Fabs\u002F2011.08891 \u003Cbr>\n`Use HiResCAM instead of Grad-CAM for faithful explanations of convolutional neural networks\nRachel L. Draelos, Lawrence Carin`\n\nhttps:\u002F\u002Farxiv.org\u002Fabs\u002F1710.11063 \u003Cbr>\n`Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks\nAditya Chattopadhyay, Anirban Sarkar, Prantik Howlader, Vineeth N Balasubramanian`\n\nhttps:\u002F\u002Farxiv.org\u002Fabs\u002F1910.01279 \u003Cbr>\n`Score-CAM: Score-Weighted Visual Explanations for Convolutional Neural Networks\nHaofan Wang, Zifan Wang, Mengnan Du, Fan Yang, Zijian Zhang, Sirui Ding, Piotr Mardziel, Xia Hu`\n\nhttps:\u002F\u002Fieeexplore.ieee.org\u002Fabstract\u002Fdocument\u002F9093360\u002F \u003Cbr>\n`Ablation-cam: Visual explanations for deep convolutional network via gradient-free localization.\nSaurabh Desai and Harish G Ramaswamy. In WACV, pages 972–980, 2020`\n\nhttps:\u002F\u002Farxiv.org\u002Fabs\u002F2008.02312 \u003Cbr>\n`Axiom-based Grad-CAM: Towards Accurate Visualization and Explanation of CNNs\nRuigang Fu, Qingyong Hu, Xiaohu Dong, Yulan Guo, Yinghui Gao, Biao Li`\n\nhttps:\u002F\u002Farxiv.org\u002Fabs\u002F2008.00299 \u003Cbr>\n`Eigen-CAM: Class Activation Map using Principal Components\nMohammed Bany Muhammad, Mohammed Yeasin`\n\nhttp:\u002F\u002Fmftp.mmcheng.net\u002FPapers\u002F21TIP_LayerCAM.pdf \u003Cbr>\n`LayerCAM: Exploring Hierarchical Class Activation Maps for Localization\nPeng-Tao Jiang; Chang-Bin Zhang; Qibin Hou; Ming-Ming Cheng; Yunchao Wei`\n\nhttps:\u002F\u002Farxiv.org\u002Fabs\u002F1905.00780 \u003Cbr>\n`Full-Gradient Representation for Neural Network Visualization\nSuraj Srinivas, Francois Fleuret`\n\nhttps:\u002F\u002Farxiv.org\u002Fabs\u002F1806.10206 \u003Cbr>\n`Deep Feature Factorization For Concept Discovery\nEdo Collins, Radhakrishna Achanta, Sabine Süsstrunk`\n\nhttps:\u002F\u002Farxiv.org\u002Fabs\u002F2410.00267 \u003Cbr>\n`KPCA-CAM: Visual Explainability of Deep Computer Vision Models using Kernel PCA\nSachin Karmani, Thanushon Sivakaran, Gaurav Prasad, Mehmet Ali, Wenbo Yang, Sheyang Tang`\n\nhttps:\u002F\u002Fhal.science\u002Fhal-02963298\u002Fdocument \u003Cbr>\n`Features Understanding in 3D CNNs for Actions Recognition in Video\nKazi Ahmed Asif Fuad, Pierre-Etienne Martin, Romain Giot, Romain\nBourqui, Jenny Benois-Pineau, Akka Zemmar`\n\nhttps:\u002F\u002Farxiv.org\u002Fabs\u002F2501.06261 \u003Cbr>\n`CAMs as Shapley Value-based Explainers\nHuaiguang Cai`\n\n\nhttps:\u002F\u002Farxiv.org\u002Fpdf\u002F2501.11309 \u003Cbr>\n`Finer-CAM : Spotting the Difference Reveals Finer Details for Visual Explanation`    \n`Ziheng Zhang*, Jianyang Gu*, Arpita Chowdhury, Zheda Mai, David Carlyn,Tanya Berger-Wolf, Yu Su, Wei-Lun Chao`\n\n\nhttps:\u002F\u002Fdoi.org\u002F10.3390\u002Fapp15137562 \u003Cbr>\n`Seg-Eigen-CAM: Eigen-Value-Based Visual Explanations for Semantic Segmentation Models\nChing-Ting Chung, Josh Jia-Ching Ying`","pytorch-grad-cam 是一个用于计算机视觉的高级可解释性AI工具包，支持多种深度学习模型和任务。它提供了包括GradCAM、HiResCAM在内的多种像素归因方法，适用于CNNs、Vision Transformers等常见网络结构，并能在分类、目标检测、语义分割及图像相似度等多种场景下工作。项目通过平滑处理使可视化结果更加清晰，同时支持批量图像处理以提高性能，并包含一系列评估指标来优化解释效果。此工具非常适合需要理解和调试模型预测的研究者与开发者使用。",2,"2026-06-11 03:23:57","top_topic"]