A Swiss Army knife for neural-network autopsies
It wraps a dozen XAI methods under one Keras API so you can stop reimplementing saliency maps from scratch.

What it does
iNNvestigate is a Python toolbox that implements roughly a dozen neural-network explanation methods—gradient, SmoothGrad, LRP, DeepTaylor, Integrated Gradients, and others—behind a single Keras/TensorFlow API. You instantiate an analyzer by name, pass it a model, then call analyze(inputs) to get a relevance map or attribution. The library also strips softmax layers and handles neuron selection (max-activation or by index) automatically.
The interesting bit The real value is the standardization, not the novelty. Each of these methods has its own paper, assumptions, and edge cases; the library forces them into the same calling convention so you can actually compare them without writing twelve wrappers. The authors are explicit that they do not explain the underlying theory—you still need to read the papers before you cite.
Key highlights
- One-liner instantiation:
innvestigate.create_analyzer("deep_taylor", model) - Covers function-based (gradient, SmoothGrad), signal-based (DeConvNet, Guided BackProp), and attribution methods (LRP, Integrated Gradients)
- Includes notebooks for MNIST, ImageNet, sentiment analysis, and perturbation benchmarks
- Published in JMLR; actively maintained with CI and Poetry-based dev setup
Caveats
- Requires disabling TensorFlow 2 eager execution (
tf.compat.v1.disable_eager_execution()), which is a notable friction point in 2024 - PatternNet is noted as unavailable in iNNvestigate 2.0
- TensorFlow support is pinned to versions 2.6–2.14
Verdict Worth a look if you are doing rigorous XAI benchmarking or teaching and need comparable implementations. Skip it if you are on PyTorch or need the bleeding edge of post-hoc interpretability; this is a consolidation play, not a frontier one.