cs-mixer / pytorch_grad_cam /xgrad_cam.py
crrrr30's picture
Upload folder using huggingface_hub
da716ed
raw
history blame
860 Bytes
import numpy as np
from pytorch_grad_cam.base_cam import BaseCAM
class XGradCAM(BaseCAM):
def __init__(
self,
model,
target_layers,
use_cuda=False,
reshape_transform=None):
super(
XGradCAM,
self).__init__(
model,
target_layers,
use_cuda,
reshape_transform)
def get_cam_weights(self,
input_tensor,
target_layer,
target_category,
activations,
grads):
sum_activations = np.sum(activations, axis=(2, 3))
eps = 1e-7
weights = grads * activations / \
(sum_activations[:, :, None, None] + eps)
weights = weights.sum(axis=(2, 3))
return weights