Source code for xailib.models.keras_classifier_wrapper

"""
Keras classifier wrapper for XAI-Lib.

This module provides a wrapper class for Keras/TensorFlow classifiers,
allowing them to be used with XAI-Lib explainers.

Classes:
    keras_classifier_wrapper: Wrapper for Keras classifiers.

Example:
    >>> from tensorflow import keras
    >>> from xailib.models.keras_classifier_wrapper import keras_classifier_wrapper
    >>>
    >>> # Build and train your Keras model
    >>> model = keras.Sequential([...])
    >>> model.fit(X_train, y_train)
    >>>
    >>> # Wrap it for use with XAI-Lib
    >>> bb = keras_classifier_wrapper(model)
    >>>
    >>> # Now use with any explainer
    >>> from xailib.explainers.gradcam_explainer import GradCAMImageExplainer
    >>> explainer = GradCAMImageExplainer(bb)
"""

from xailib.models.bbox import AbstractBBox


[docs] class keras_classifier_wrapper(AbstractBBox): """ Wrapper class for Keras/TensorFlow classifiers. This class wraps Keras models to provide the standard interface expected by XAI-Lib explainers. Args: classifier: A trained Keras model. Attributes: bbox: The wrapped Keras model. Example: >>> model = keras.Sequential([...]) >>> model.fit(X_train, y_train) >>> wrapper = keras_classifier_wrapper(model) >>> wrapper.predict(X_test[:5]) """ def __init__(self, classifier): """ Initialize the Keras classifier wrapper. Args: classifier: A trained Keras model. """ super().__init__() self.bbox = classifier
[docs] def model(self): """ Get the underlying Keras model. Returns: The wrapped Keras model object. """ return self.bbox
[docs] def predict(self, X): """ Make class predictions for input instances. Args: X: Input features as a numpy array. Returns: numpy.ndarray: Predicted class labels. """ return self.bbox.predict(X)
[docs] def predict_proba(self, X): """ Get prediction probabilities for input instances. Args: X: Input features as a numpy array. Returns: numpy.ndarray: Predicted class probabilities. """ return self.bbox.predict_proba(X)