Skip to main content
Xplique


๐ŸฆŠ Xplique (pronounced \ษ›ks.plik\) is a Python toolkit dedicated to explainability, currently based on Tensorflow. The goal of this library is to gather the state of the art of Explainable AI to help you understand your complex neural network models.
Explore Xplique docs ยป

Attributions ยท Concept ยท Feature Visualization ยท Metrics

The library is composed of several modules, the Attributions Methods module implements various methods (e.g Saliency, Grad-CAM, Integrated-Gradients...), with explanations, examples and links to official papers. The Feature Visualization module allows to see how neural networks build their understanding of images by finding inputs that maximize neurons, channels, layers or compositions of these elements. The Concepts module allows you to extract human concepts from a model and to test their usefulness with respect to a class. Finally, the Metrics module covers the current metrics used in explainability. Used in conjunction with the Attribution Methods module, it allows you to test the different methods or evaluate the explanations of a model.


๐Ÿ“š Table of contents

๐Ÿ”ฅ Tutorials

We propose some Hands-on tutorials to get familiar with the library and its api:

  • Attribution Methods: Getting started Open In Colab
  • Attribution Methods: Tabular data and Regression Open In Colab
  • Attribution Methods: Metrics Open In Colab
  • Concepts Methods: Testing with Concept Activation Vectors Open In Colab
  • Feature Visualization: Getting started Open In Colab

You can find a certain number of other practical tutorials just here. This section is actively developed and more contents will be included. We will try to cover all the possible usage of the library, feel free to contact us if you have any suggestions or recommandations towards tutorials you would like to see.

๐Ÿš€ Quick Start

Xplique requires a version of python higher than 3.6 and several libraries including Tensorflow and Numpy. Installation can be done using Pypi:

pip install xplique

Now that Xplique is installed, here are 4 basic examples of what you can do with the available modules.

Attributions Methods

let's start with a simple example, by computing Grad-CAM for several images (or a complete dataset) on a trained model.

from xplique.attributions import GradCAM

# load images, labels and model
# ...

explainer = GradCAM(model)
explanations = explainer.explain(images, labels)
# or just `explainer(images, labels)`

Attributions Metrics

In order to measure if the explanations provided by our method are faithful (it reflects well the functioning of the model) we can use a fidelity metric such as Deletion

from xplique.attributions import GradCAM
from xplique.metrics import Deletion

# load images, labels and model
# ...

explainer = GradCAM(model)
explanations = explainer(inputs, labels)
metric = Deletion(model, inputs, labels)

score_grad_cam = metric(explanations)

Concepts Extraction

Concerning the concept-based methods, we can for example extract a concept vector from a layer of a model. In order to do this, we use two datasets, one containing inputs containing the concept: positive_samples, the other containing other entries which do not contain the concept: negative_samples.

from xplique.concepts import Cav

# load a model, samples that contain a concept
# (positive) and samples who don't (negative)
# ...

extractor = Cav(model, 'mixed3')
concept_vector = extractor(positive_samples,
                           negative_samples)

Feature Visualization

Finally, in order to find an image that maximizes a neuron and at the same time a layer, we build two objectives that we combine together. We then call the optimizer which returns our images

from xplique.features_visualizations import Objective
from xplique.features_visualizations import optimize

# load a model...

neuron_obj = Objective.neuron(model, "logits", 200)
channel_obj = Objective.layer(model, "mixed3", 10)

obj = neuron_obj + 2.0 * channel_obj
images, obj_names = optimize(obj)

๐Ÿ“ฆ What's Included

All the attributions method presented below handle both Classification and Regression tasks.

Attribution Method Type of Model Source Tabular Data Images Time-Series
Deconvolution TF Paper โœ” โœ” WIP
Grad-CAM TF Paper โœ” WIP
Grad-CAM++ TF Paper โœ” WIP
Gradient Input TF Paper โœ” โœ” WIP
Guided Backprop TF Paper โœ” โœ” WIP
Integrated Gradients TF Paper โœ” โœ” WIP
Kernel SHAP Callable* Paper โœ” โœ” WIP
Lime Callable* Paper โœ” โœ” WIP
Occlusion Callable* Paper โœ” โœ” WIP
Rise Callable* Paper WIP โœ” WIP
Saliency TF Paper โœ” โœ” WIP
SmoothGrad TF Paper โœ” โœ” WIP
SquareGrad TF Paper โœ” โœ” WIP
VarGrad TF Paper โœ” โœ” WIP
Attribution Metrics Type of Model Property Source
MuFidelity TF Fidelity Paper
Deletion TF Fidelity Paper
Insertion TF Fidelity Paper
Average Stability TF Stability Paper
MeGe TF Representativity Paper
ReCo TF Consistency Paper
(WIP) e-robustness
Concepts method Type of Model Source
Concept Activation Vector (CAV) TF Paper
Testing CAV (TCAV) TF Paper
(WIP) Robust TCAV
(WIP) Automatic Concept Extraction (ACE)
Feature Visualization (Paper) Type of Model Details
Neurons TF Optimizes for specific neurons
Layer TF Optimizes for specific layers
Channel TF Optimizes for specific channels
Direction TF Optimizes for specific vector
Fourrier Preconditioning TF Optimize in Fourier basis (see preconditioning)
Objective combination TF Allows to combine objectives
methods with TF need a Tensorflow model.

๐Ÿ‘ Contributing

Feel free to propose your ideas or come and contribute with us on the Xplique toolbox! We have a specific document where we describe in a simple way how to make your first pull request: just here.

๐Ÿ‘€ See Also

This library is one approach of many to explain your model. We don't expect it to be the perfect solution; we create it to explore one point in the space of possibilities.

Other tools to explain your model include:

  • Lucid the wonderful library specialized in feature visualization from OpenAI.
  • Captum the Pytorch library for Interpretability research
  • Tf-explain that implement multiples attribution methods and propose callbacks API for tensorflow.
  • Alibi Explain for model inspection and interpretation
  • SHAP a very popular library to compute local explanations using the classic Shapley values from game theory and their related extensions

To learn more about Explainable AI in general, see:

๐Ÿ™ Acknowledgments

This project received funding from the French โ€Investing for the Future โ€“ PIA3โ€ program within the Artificial and Natural Intelligence Toulouse Institute (ANITI). The authors gratefully acknowledge the support of the DEEL project.

๐Ÿ‘จโ€๐ŸŽ“ Creator

This library was started as a side-project by Thomas FEL who is currently a graduate student at the Artificial and Natural Intelligence Toulouse Institute under the direction of Thomas SERRE. His thesis work focuses on explainability for deep neural networks. He then received help from some members of the DEEL team to enhance the library namely from Justin PLAKOO and Lucas HERVIER.

๐Ÿ“ License

The package is released under MIT license.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Xplique-0.2.5.tar.gz (64.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Xplique-0.2.5-py3-none-any.whl (99.9 kB view details)

Uploaded Python 3

File details

Details for the file Xplique-0.2.5.tar.gz.

File metadata

  • Download URL: Xplique-0.2.5.tar.gz
  • Upload date:
  • Size: 64.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for Xplique-0.2.5.tar.gz
Algorithm Hash digest
SHA256 af978f6b58c723a5b3ff254bfd51e7650c940e5b76d143e58e6f8c55dcc3d558
MD5 b6f56ba1b731c6171a023fba2c5d5cf6
BLAKE2b-256 b55f04d565116ccf09227a3a726066358b24e5473877098370d8a66fd3a65a98

See more details on using hashes here.

File details

Details for the file Xplique-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: Xplique-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 99.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for Xplique-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6332db4d4af54a14029888f87171b3632904de888ffacf86551726a285a24aac
MD5 56757916307be59d3141269c28bca7d4
BLAKE2b-256 762898ab1f7ebda589889561b562bad2c07a78c42133711b2a584b027878c668

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page