CRAFT
Release Note v1.3.0
New Features
CRAFT or Concept Recursive Activation FacTorization for Explainability
Introduction of the CRAFT method (see the Paper) for both frameworks: PyTorch and Tensorflow. CRAFT is a method for automatically extracting human-interpretable concepts from deep networks.
from xplique.concepts import CraftTf as Craft
# Cut the model in two parts (as explained in the paper)
# first part is g(.) our 'input_to_latent' model returning positive activations,
# second part is h(.) our 'latent_to_logit' model
g = tf.keras.Model(model.input, model.layers[-3].output)
h = tf.keras.Model(model.layers[-2].input, model.layers[-1].output)
# Create a Craft concept extractor from these 2 models
craft = Craft(input_to_latent_model = g,
latent_to_logit_model = h,
number_of_concepts = 10,
patch_size = 80,
batch_size = 64)
# Use Craft to get the crops (crops), the embedding of the crops (crops_u),
# and the concept bank (w)
crops, crops_u, w = craft.fit(images_preprocessed, class_id=rabbit_class_id)
# Compute Sobol indices to understand which concept matters
importances = craft.estimate_importance()
# Display those concepts by showing the 10 best crops for each concept
craft.plot_concepts_crops(nb_crops=10)
See related documentation, Tensorflow tutorials and PyTorch tutorial