Source code for lczerolens.lenses.activation

"""Activation lens."""

from lczerolens.model import LczeroModel
from lczerolens.lens import Lens


@Lens.register("activation")
[docs] class ActivationLens(Lens): """ Class for activation-based XAI methods. Examples -------- .. code-block:: python model = LczeroModel.from_path(model_path) lens = ActivationLens() board = LczeroBoard() results = lens.analyse(board, model=model) """
[docs] def _intervene( self, model: LczeroModel, **kwargs, ) -> dict: save_inputs = kwargs.get("save_inputs", False) results = {} for name, module in self._get_modules(model): if save_inputs: results[f"{name}_input"] = module.input.save() results[f"{name}_output"] = module.output.save() return results