eegproc.model_explainability.model_agnostic.adapter module
Model and dataset contracts for architecture-agnostic counterfactuals.
Adapters isolate model-specific state initialization, classification, decoding,
and optional validity metrics from the optimizer. External projects can provide
an adapter factory without changing EEGProc; factories are addressed as
package.module:function and receive model_path, config, and one
sample trial.
- class eegproc.model_explainability.model_agnostic.adapter.CounterfactualAdapter[source]
Bases:
ABCMinimal differentiable interface consumed by the generic optimizer.
- constraint(name, signal)[source]
Return one scalar validity metric; subclasses opt in by name.
- Parameters:
name (
str)signal (
Tensor)
- Return type:
Tensor
- default_signal_weight = 0.1
- default_state_weight = 0.1
- abstractmethod initial_state(inputs)[source]
Return the tensor that should be optimized for one input trial.
- Parameters:
inputs (
Tensor)- Return type:
Tensor
- abstractmethod logits_from_state(state)[source]
Return unnormalized class logits for the optimizable state.
- Parameters:
state (
Tensor)- Return type:
Tensor
- name = 'custom'
- optimization_space = 'latent'
- class eegproc.model_explainability.model_agnostic.adapter.KerasInputAdapter(model, *, output_kind, output_key=None)[source]
Bases:
CounterfactualAdapterInput-space gradients for differentiable Keras models without decoders.
- Parameters:
output_kind (
str)output_key (
str|None, default:None)
- default_signal_weight = 0.0
- default_state_weight = 0.1
- name = 'keras-input'
- optimization_space = 'input'
- class eegproc.model_explainability.model_agnostic.adapter.TrialDataset(features, subject_ids, trial_ids, labels=None, normalization_offset=None, normalization_scale=None, channel_names=None, band_names=None, channel_positions=None, feature_order=None, signal_unit=None, metadata=<factory>)[source]
Bases:
objectPrepared trials and optional metadata needed to restore source units.
- Parameters:
features (
ndarray)subject_ids (
ndarray)trial_ids (
ndarray)labels (
ndarray|None, default:None)normalization_offset (
ndarray|None, default:None)normalization_scale (
ndarray|None, default:None)channel_names (
tuple[str,...] |None, default:None)band_names (
tuple[str,...] |None, default:None)channel_positions (
ndarray|None, default:None)feature_order (
str|None, default:None)signal_unit (
str|None, default:None)metadata (
dict[str,Any], default:<factory>)
- band_names: tuple[str, ...] | None = None
- channel_names: tuple[str, ...] | None = None
- channel_positions: ndarray | None = None
- feature_order: str | None = None
- features: ndarray
- labels: ndarray | None = None
- metadata: dict[str, Any]
- normalization_offset: ndarray | None = None
- normalization_scale: ndarray | None = None
- signal_unit: str | None = None
- subject_ids: ndarray
- trial_ids: ndarray
- eegproc.model_explainability.model_agnostic.adapter.create_adapter(factory_spec, *, model_path, config, sample_input)[source]
- Parameters:
factory_spec (
str)model_path (
Path)config (
Mapping[str,Any])sample_input (
ndarray)
- Return type:
- eegproc.model_explainability.model_agnostic.adapter.create_keras_input_adapter(*, model_path, config, sample_input)[source]
Built-in factory for arbitrary differentiable input-space Keras models.
- eegproc.model_explainability.model_agnostic.adapter.load_json_mapping(value)[source]
Load a JSON object from inline text or a JSON file path.
- Parameters:
value (
str|None)- Return type:
dict[str,Any]
- eegproc.model_explainability.model_agnostic.adapter.load_trial_dataset(npz_path, *, loader_spec=None, loader_config=None)[source]
Load a standard NPZ or delegate dataset construction to a plug-in.
- Parameters:
npz_path (
Path|None)loader_spec (
str|None, default:None)loader_config (
Optional[Mapping[str,Any]], default:None)
- Return type:
- eegproc.model_explainability.model_agnostic.adapter.validate_trial_dataset(dataset)[source]
- Parameters:
dataset (
TrialDataset)- Return type: