Different shapes from running methods of tf.xplain.core
annahedstroem opened this issue · 1 comments
annahedstroem commented
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!
annahedstroem commented
(code from https://github.com/understandable-machine-intelligence-lab/Quantus package!)