-
Notifications
You must be signed in to change notification settings - Fork 110
Open
Description
Problem
The output shape of explanations differ for GradCAM (and OcclusionSensitivity) and e.g., VanillaGradient, where GradCAM also includes the channels.
Implementation
While the syntax is the same:
explainer = tf_explain.core.grad_cam.GradCAM()
explanation = (
np.array(
list(
map(
lambda x, y: explainer.explain(
([x], None), model, y, **method_kwargs
),
inputs,
targets,
)
),
dtype=float,
)
/ 255
)
=== {"shape": (nr_samples, img_size, img_size, nr_channels)},
vs
explainer = tf_explain.core.vanilla_gradients.VanillaGradients()
explanation = (
np.array(
list(
map(
lambda x, y: explainer.explain(
([x], None), model, y, **method_kwargs
),
inputs,
targets,
)
),
dtype=float,
)
/ 255
)
=== {"shape": (nr_samples, img_size, img_size)},
Thank you!
Activity
annahedstroem commentedon Feb 22, 2023
(code from https://github.com/understandable-machine-intelligence-lab/Quantus package!)