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!
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:
=== {"shape": (nr_samples, img_size, img_size, nr_channels)},
vs
=== {"shape": (nr_samples, img_size, img_size)},
Thank you!