signxai package

Subpackages

Submodules

signxai.api module

Unified API for SignXAI - Cross-framework XAI explanations.

This module provides a unified interface for generating explanations across TensorFlow and PyTorch frameworks with automatic parameter mapping and framework detection.

signxai.api.explain(model, x: ndarray | torch.Tensor | tf.Tensor, method_name: str, target_class: int | None = None, framework: str | None = None, **kwargs) ndarray[source]

Generate explanations for model predictions using various XAI methods.

This unified API automatically handles framework detection, model preparation, and parameter mapping to provide consistent explanations across TensorFlow and PyTorch implementations.

Parameters:
  • model – The model to explain (TensorFlow Keras model or PyTorch nn.Module)

  • x – Input data as numpy array or framework tensor

  • method_name – Name of the XAI method to apply. Supported methods include: - Gradient-based: ‘gradient’, ‘smoothgrad’, ‘integrated_gradients’, ‘vargrad’ - Backprop methods: ‘guided_backprop’, ‘deconvnet’ - Feature methods: ‘gradcam’ - LRP methods: ‘lrp_epsilon’, ‘lrp_alpha_1_beta_0’, ‘lrp_alpha_2_beta_1’ - And many more (see documentation for full list)

  • target_class – Target class index for explanation. If None, uses predicted class.

  • framework – Framework to use (‘tensorflow’ or ‘pytorch’). If None, auto-detected.

  • **kwargs – Method-specific parameters. Common parameters: - steps: Number of steps for Integrated Gradients (default: 50) - num_samples: Number of samples for SmoothGrad (default: 25) - noise_level: Noise level for SmoothGrad (default: 0.1) - layer_name: Target layer for Grad-CAM (framework-specific) - epsilon: Epsilon value for LRP methods (default: 0.1) - alpha, beta: Alpha-beta values for LRP alpha-beta methods

Returns:

Explanation/relevance map as numpy array with same spatial dimensions as input

Raises:
  • ValueError – If framework cannot be detected or is unsupported

  • ImportError – If required framework dependencies are not installed

Examples

Basic gradient explanation: >>> explanation = explain(model, image, ‘gradient’)

Integrated Gradients with custom steps: >>> explanation = explain(model, image, ‘integrated_gradients’, steps=100)

Grad-CAM on specific layer: >>> explanation = explain(model, image, ‘gradcam’, layer_name=’block5_conv3’)

LRP with epsilon rule: >>> explanation = explain(model, image, ‘lrp_epsilon’, epsilon=0.1)

Cross-framework usage (same API for both): >>> tf_explanation = explain(tf_model, data, ‘smoothgrad’, framework=’tensorflow’) >>> pt_explanation = explain(pt_model, data, ‘smoothgrad’, framework=’pytorch’)

signxai.api.list_methods(framework: str | None = None) Dict[str, list][source]

List all available XAI methods for the specified framework(s).

Parameters:

framework – Framework to list methods for (‘tensorflow’, ‘pytorch’, or None for both)

Returns:

Dictionary with framework names as keys and list of method names as values

signxai.api.get_method_info(method_name: str, framework: str | None = None) Dict[str, Any][source]

Get detailed information about a specific XAI method.

Parameters:
  • method_name – Name of the method to get info for

  • framework – Framework to check (‘tensorflow’, ‘pytorch’, or None for both)

Returns:

Dictionary with method information including parameters, description, etc.

signxai.api.explain_with_preset(model, x, method_name: str, preset: str = 'default', **override_kwargs)[source]

Explain using predefined parameter presets for common use cases.

Parameters:
  • model – Model to explain

  • x – Input data

  • method_name – XAI method name

  • preset – Preset name (‘default’, ‘fast’, ‘high_quality’)

  • **override_kwargs – Parameters to override preset values

Returns:

Explanation as numpy array

Module contents

signxai.calculate_relevancemap(*args, **kwargs)
signxai.calculate_relevancemaps(*args, **kwargs)
signxai.explain(*args, **kwargs)[source]

Wrapper for explain that checks framework availability.

signxai.list_methods(*args, **kwargs)[source]

Wrapper for list_methods that checks framework availability.

signxai.get_method_info(*args, **kwargs)[source]

Wrapper for get_method_info that checks framework availability.

signxai.explain_with_preset(*args, **kwargs)[source]

Wrapper for explain_with_preset that checks framework availability.