Skip to content

Different shapes from running methods of tf.xplain.core #187

@annahedstroem

Description

@annahedstroem

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions