lfxai.explanations.examples module

class ExampleBasedExplainer(model: Module, X_train: Tensor, loss_f: callable, **kwargs)

Bases: ABC

_abc_impl = <_abc_data object>
abstract attribute(X_test: Tensor, train_idx: list, **kwargs) Tensor
Parameters
  • X_test

  • train_idx

  • **kwargs

Returns:

class InfluenceFunctions(model: Module, loss_f: callable, save_dir: Path, X_train: Optional[Tensor] = None)

Bases: ExampleBasedExplainer, ABC

_abc_impl = <_abc_data object>
attribute(X_test: Tensor, train_idx: list, batch_size: int = 1, damp: float = 0.001, scale: float = 1000, recursion_depth: int = 100, **kwargs) Tensor

Code adapted from https://github.com/ahmedmalaa/torch-influence-functions/ This function applies the stochastic estimation approach to evaluating influence function based on the power-series approximation of matrix inversion. Recall that the exact inverse Hessian H^-1 can be computed as follows: H^-1 = sum^infty_{i=0} (I - H) ^ j This series converges if all the eigen values of H are less than 1.

Returns

list of torch tensors, contains product of Hessian and v.

Return type

return_grads

attribute_loader(device: device, train_loader: DataLoader, test_loader: DataLoader, train_loader_replacement: DataLoader, recursion_depth: int = 100, damp: float = 0.001, scale: float = 1000, **kwargs) Tensor
class NearestNeighbours(model: Module, loss_f: Optional[callable] = None, X_train: Optional[Tensor] = None)

Bases: ExampleBasedExplainer, ABC

_abc_impl = <_abc_data object>
attribute(X_test: Tensor, train_idx: list, batch_size: int = 500, **kwargs) Tensor
Parameters
  • X_test

  • train_idx

  • **kwargs

Returns:

attribute_loader(device: device, train_loader: DataLoader, test_loader: DataLoader, batch_size: int = 50, **kwargs) Tensor
class SimplEx(model: Module, loss_f: Optional[callable] = None, X_train: Optional[Tensor] = None)

Bases: ExampleBasedExplainer, ABC

_abc_impl = <_abc_data object>
attribute(X_test: Tensor, train_idx: list, learning_rate: float = 1, batch_size: int = 50, **kwargs) Tensor
Parameters
  • X_test

  • train_idx

  • **kwargs

Returns:

attribute_loader(device: device, train_loader: DataLoader, test_loader: DataLoader, batch_size: int = 50, **kwargs) Tensor
static compute_weights(batch_representations: Tensor, train_representations: Tensor, n_epoch: int = 1000) Tensor
class TracIn(model: Module, loss_f: callable, save_dir: Path, X_train: Optional[Tensor] = None)

Bases: ExampleBasedExplainer, ABC

_abc_impl = <_abc_data object>
attribute(X_test: Tensor, train_idx: list, learning_rate: float = 1, **kwargs) Tensor
Parameters
  • X_test

  • train_idx

  • **kwargs

Returns:

attribute_loader(device: device, train_loader: DataLoader, test_loader: DataLoader, **kwargs) Tensor