Open annahedstroem opened 1 year ago
The output shape of explanations differ for GradCAM (and OcclusionSensitivity) and e.g., VanillaGradient, where GradCAM also includes the channels.
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!
(code from https://github.com/understandable-machine-intelligence-lab/Quantus package!)
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!