class_docstr: Computes internal influence by approximating the integral of gradients
  for a particular layer along the path from a baseline input to the
  given input.
  If no baseline is provided, the default baseline is the zero tensor.
  More details on this approach can be found here:
  https://arxiv.org/abs/1802.03788
  
  Note that this method is similar to applying integrated gradients and
  taking the layer as input, integrating the gradient of the layer with
  respect to the output.
class_docstr_tok: ["Computes","internal","influence","by","approximating","the","integral","of","gradients","for","a","particular","layer","along","the","path","from","a","baseline","input","to","the","given","input",".","If","no","baseline","is","provided",",","the","default","baseline","is","the","zero","tensor",".","More","details","on","this","approach","can","be","found","here",":","https",":","\/\/arxiv.org\/abs\/1802.03788","Note","that","this","method","is","similar","to","applying","integrated","gradients","and","taking","the","layer","as","input",",","integrating","the","gradient","of","the","layer","with","respect","to","the","output","."]
docstr: Args:
  
      forward_func (Callable): The forward function of the model or any
                    modification of it
      layer (torch.nn.Module): Layer for which attributions are computed.
                    Output size of attribute matches this layer's input or
                    output dimensions, depending on whether we attribute to
                    the inputs or outputs of the layer, corresponding to
                    attribution of each neuron in the input or output of
                    this layer.
      device_ids (list[int]): Device ID list, necessary only if forward_func
                    applies a DataParallel model. This allows reconstruction of
                    intermediate outputs from batched results across devices.
                    If forward_func is given as the DataParallel model itself,
                    then it is not necessary to provide this argument.
docstr_tok: ["Args",":","forward_func","(","Callable",")",":","The","forward","function","of","the","model","or","any","modification","of","it","layer","(","torch.nn.Module",")",":","Layer","for","which","attributions","are","computed",".","Output","size","of","attribute","matches","this","layer","'s","input","or","output","dimensions",",","depending","on","whether","we","attribute","to","the","inputs","or","outputs","of","the","layer",",","corresponding","to","attribution","of","each","neuron","in","the","input","or","output","of","this","layer",".","device_ids","(","list","[","int","]",")",":","Device","ID","list",",","necessary","only","if","forward_func","applies","a","DataParallel","model",".","This","allows","reconstruction","of","intermediate","outputs","from","batched","results","across","devices",".","If","forward_func","is","given","as","the","DataParallel","model","itself",",","then","it","is","not","necessary","to","provide","this","argument","."]
code: def __init__(
      self,
      forward_func: Callable,
      layer: Module,
      device_ids: Union[None, List[int]] = None,
  ) -> None:
      r"""
      Args:
  
          forward_func (Callable): The forward function of the model or any
                        modification of it
          layer (torch.nn.Module): Layer for which attributions are computed.
                        Output size of attribute matches this layer's input or
                        output dimensions, depending on whether we attribute to
                        the inputs or outputs of the layer, corresponding to
                        attribution of each neuron in the input or output of
                        this layer.
          device_ids (list[int]): Device ID list, necessary only if forward_func
                        applies a DataParallel model. This allows reconstruction of
                        intermediate outputs from batched results across devices.
                        If forward_func is given as the DataParallel model itself,
                        then it is not necessary to provide this argument.
      """
      LayerAttribution.__init__(self, forward_func, layer, device_ids)
      GradientAttribution.__init__(self, forward_func)
  
file_path: captum/captum/attr/_core/layer/internal_influence.py
imports: from typing import Any, Callable, List, Tuple, Union
  import torch
  from captum._utils.common import _expand_additional_forward_args, _expand_target, _format_additional_forward_args, _format_output
  from captum._utils.gradient import compute_layer_gradients_and_eval
  from captum._utils.typing import BaselineType, TargetType
  from captum.attr._utils.approximation_methods import approximation_parameters
  from captum.attr._utils.attribution import GradientAttribution, LayerAttribution
  from captum.attr._utils.batching import _batch_attribution
  from captum.attr._utils.common import _format_input_baseline, _reshape_and_sum, _validate_input
  from captum.log import log_usage
  from torch import Tensor
  from torch.nn import Module
label_desc: Use image node_id 1 to create a new InternalInfluence object from inherited base classes: LayerAttribution, GradientAttribution with example: obj = InternalInfluence(forward_func, layer, device_ids)