tdhook.attribution#
Module for attribution methods.
Submodules#
Classes#
Package Contents#
- class tdhook.attribution.LRP(use_inputs=True, use_outputs=True, input_modules=None, target_modules=None, init_attr_targets=None, init_attr_inputs=None, init_attr_cache_in=None, init_attr_grads=None, additional_init_keys=None, output_grad_callbacks=None, attribution_key='attr', clean_intermediate_keys=True, cache_callback=None, rule_mapper=None, warn_on_missing_rule=True, skip_modules=None)[source]#
Bases:
tdhook.attribution.gradient_helpers.GradientAttributionDifferent LRP rules such as LRP-0, LRP-epsilon z-plus [3], flat [4], gamma [5, 6], w-square [7] and its conditional variant [1].
- Parameters:
use_inputs (bool)
use_outputs (bool)
input_modules (Optional[List[str]])
target_modules (Optional[List[str]])
init_attr_targets (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_inputs (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_cache_in (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_grads (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
additional_init_keys (Optional[List[tdhook._types.UnraveledKey]])
output_grad_callbacks (Optional[Dict[str, Callable]])
attribution_key (tdhook._types.UnraveledKey)
clean_intermediate_keys (bool)
cache_callback (Optional[Callable])
rule_mapper (Callable[[str, torch.nn.Module], tdhook.attribution.lrp_helpers.rules.Rule | None] | None)
warn_on_missing_rule (bool)
skip_modules (Optional[Callable[[str, torch.nn.Module], bool]])
- _rule_mapper#
- _warn_on_missing_rule = True#
- _skip_modules = None#
- _prepare_module(module, in_keys, out_keys, extra_relative_path)[source]#
- Parameters:
module (tensordict.nn.TensorDictModuleBase)
in_keys (List[tdhook._types.UnraveledKey])
out_keys (List[tdhook._types.UnraveledKey])
extra_relative_path (str)
- Return type:
tensordict.nn.TensorDictModuleBase
- _restore_module(module, in_keys, out_keys, extra_relative_path)[source]#
- Parameters:
module (tensordict.nn.TensorDictModuleBase)
in_keys (List[tdhook._types.UnraveledKey])
out_keys (List[tdhook._types.UnraveledKey])
extra_relative_path (str)
- Return type:
tensordict.nn.TensorDictModuleBase
- class tdhook.attribution.Saliency(use_inputs=True, use_outputs=True, input_modules=None, target_modules=None, init_attr_targets=None, init_attr_inputs=None, init_attr_cache_in=None, init_attr_grads=None, additional_init_keys=None, output_grad_callbacks=None, attribution_key='attr', clean_intermediate_keys=True, cache_callback=None, absolute=False, multiply_by_inputs=False)[source]#
Bases:
tdhook.attribution.gradient_helpers.GradientAttributionGradient attribution [8] and its gradient-times-input variation [9].
- Parameters:
use_inputs (bool)
use_outputs (bool)
input_modules (Optional[List[str]])
target_modules (Optional[List[str]])
init_attr_targets (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_inputs (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_cache_in (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_grads (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
additional_init_keys (Optional[List[tdhook._types.UnraveledKey]])
output_grad_callbacks (Optional[Dict[str, Callable]])
attribution_key (tdhook._types.UnraveledKey)
clean_intermediate_keys (bool)
cache_callback (Optional[Callable])
absolute (bool)
multiply_by_inputs (bool)
- _absolute = False#
- _multiply_by_inputs = False#
- class tdhook.attribution.GradCAM(modules_to_attribute, use_inputs=True, use_outputs=True, input_modules=None, target_modules=None, init_attr_targets=None, init_attr_inputs=None, init_attr_cache_in=None, init_attr_grads=None, additional_init_keys=None, output_grad_callbacks=None, attribution_key='attr', clean_intermediate_keys=True, cache_callback=None, absolute=False)[source]#
Bases:
tdhook.attribution.gradient_helpers.GradientAttributionGrad-CAM [10].
- Parameters:
modules_to_attribute (Optional[Dict[str, DimsConfig]])
use_inputs (bool)
use_outputs (bool)
input_modules (Optional[List[str]])
target_modules (Optional[List[str]])
init_attr_targets (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_inputs (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_cache_in (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_grads (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
additional_init_keys (Optional[List[tdhook._types.UnraveledKey]])
output_grad_callbacks (Optional[Dict[str, Callable]])
attribution_key (tdhook._types.UnraveledKey)
clean_intermediate_keys (bool)
cache_callback (Optional[Callable])
absolute (bool)
- _absolute = False#
- _modules_to_attribute#
- class tdhook.attribution.GuidedBackpropagation(use_inputs=True, use_outputs=True, input_modules=None, target_modules=None, init_attr_targets=None, init_attr_inputs=None, init_attr_cache_in=None, init_attr_grads=None, additional_init_keys=None, output_grad_callbacks=None, attribution_key='attr', clean_intermediate_keys=True, cache_callback=None, multiply_by_inputs=False, classes_to_skip=())[source]#
Bases:
tdhook.attribution.gradient_helpers.GradientAttributionGuided backpropagation [11].
- Parameters:
use_inputs (bool)
use_outputs (bool)
input_modules (Optional[List[str]])
target_modules (Optional[List[str]])
init_attr_targets (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_inputs (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_cache_in (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_grads (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
additional_init_keys (Optional[List[tdhook._types.UnraveledKey]])
output_grad_callbacks (Optional[Dict[str, Callable]])
attribution_key (tdhook._types.UnraveledKey)
clean_intermediate_keys (bool)
cache_callback (Optional[Callable])
multiply_by_inputs (bool)
classes_to_skip (Tuple[Type[torch.nn.Module], Ellipsis])
- _hook_manager#
- _multiply_by_inputs = False#
- _hook_module(module)[source]#
- Parameters:
module (tdhook.modules.HookedModule)
- Return type:
- class tdhook.attribution.IntegratedGradients(use_inputs=True, use_outputs=True, input_modules=None, target_modules=None, init_attr_targets=None, init_attr_inputs=None, init_attr_cache_in=None, init_attr_grads=None, additional_init_keys=None, output_grad_callbacks=None, attribution_key='attr', clean_intermediate_keys=True, cache_callback=None, compute_convergence_delta=False, baseline_key='baseline', multiply_by_inputs=False, method='gausslegendre', n_steps=50)[source]#
Bases:
tdhook.attribution.gradient_helpers.GradientAttributionWithBaselineIntegrated gradients [12] and its conditional variant [13].
- Parameters:
use_inputs (bool)
use_outputs (bool)
input_modules (Optional[List[str]])
target_modules (Optional[List[str]])
init_attr_targets (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_inputs (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_cache_in (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
init_attr_grads (Optional[Callable[[tensordict.TensorDict, tensordict.TensorDict], tensordict.TensorDict]])
additional_init_keys (Optional[List[tdhook._types.UnraveledKey]])
output_grad_callbacks (Optional[Dict[str, Callable]])
attribution_key (tdhook._types.UnraveledKey)
clean_intermediate_keys (bool)
cache_callback (Optional[Callable])
compute_convergence_delta (bool)
baseline_key (tdhook._types.UnraveledKey)
multiply_by_inputs (bool)
method (str)
n_steps (int)
- _method = 'gausslegendre'#
- _n_steps = 50#
- _step_sizes#
- _alphas#
- _reduce_baselines_fn(td, in_keys)[source]#
- Parameters:
td (tensordict.TensorDict)
in_keys (List[tdhook._types.UnraveledKey])
- Return type:
tensordict.TensorDict
- _grad_attr(grads, inputs)[source]#
- Parameters:
grads (tensordict.TensorDict)
inputs (tensordict.TensorDict)
- Return type:
tensordict.TensorDict
- static init_attr_targets_with_labels(outputs, additional_init_tensors, selected_out_keys, label_key='label')[source]#
- Parameters:
outputs (tensordict.TensorDict)
additional_init_tensors (tensordict.TensorDict)
selected_out_keys (List[tdhook._types.UnraveledKey])
label_key (tdhook._types.UnraveledKey)
- Return type:
tensordict.TensorDict