Spaces:
Sleeping
Sleeping
import numpy as np | |
from pytorch_grad_cam.base_cam import BaseCAM | |
from pytorch_grad_cam.utils.svd_on_activations import get_2d_projection | |
class HiResCAM(BaseCAM): | |
def __init__(self, model, target_layers, use_cuda=False, | |
reshape_transform=None): | |
super( | |
HiResCAM, | |
self).__init__( | |
model, | |
target_layers, | |
use_cuda, | |
reshape_transform) | |
def get_cam_image(self, | |
input_tensor, | |
target_layer, | |
target_category, | |
activations, | |
grads, | |
eigen_smooth): | |
elementwise_activations = grads * activations | |
if eigen_smooth: | |
print( | |
"Warning: HiResCAM's faithfulness guarantees do not hold if smoothing is applied") | |
cam = get_2d_projection(elementwise_activations) | |
else: | |
cam = elementwise_activations.sum(axis=1) | |
return cam | |