class_docstr: Computes conductance with respect to particular hidden neuron. The
  returned output is in the shape of the input, showing the attribution
  / conductance of each input feature to the selected hidden layer neuron.
  The details of the approach can be found here:
  https://arxiv.org/abs/1805.12233
class_docstr_tok: ["Computes","conductance","with","respect","to","particular","hidden","neuron",".","The","returned","output","is","in","the","shape","of","the","input",",","showing","the","attribution","\/","conductance","of","each","input","feature","to","the","selected","hidden","layer","neuron",".","The","details","of","the","approach","can","be","found","here",":","https",":","\/\/arxiv.org\/abs\/1805.12233"]
docstr: Args:
  
      forward_func (Callable): The forward function of the model or any
                  modification of it
      layer (torch.nn.Module): Layer for which neuron attributions are computed.
                  Attributions for a particular neuron in the input or output
                  of this layer are computed using the argument neuron_selector
                  in the attribute method.
                  Currently, only layers with a single tensor input or output
                  are supported.
      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.
                  Currently, it is assumed that the inputs or the outputs
                  of the layer, depending on which one is used for
                  attribution, can only be a single tensor.
      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.
      multiply_by_inputs (bool, optional): Indicates whether to factor
                  model inputs' multiplier in the final attribution scores.
                  In the literature this is also known as local vs global
                  attribution. If inputs' multiplier isn't factored in
                  then that type of attribution method is also called local
                  attribution. If it is, then that type of attribution
                  method is called global.
                  More detailed can be found here:
                  https://arxiv.org/abs/1711.06104
  
                  In case of Neuron Conductance,
                  if `multiply_by_inputs` is set to True, final
                  sensitivity scores are being multiplied
                  by (inputs - baselines).
docstr_tok: ["Args",":","forward_func","(","Callable",")",":","The","forward","function","of","the","model","or","any","modification","of","it","layer","(","torch.nn.Module",")",":","Layer","for","which","neuron","attributions","are","computed",".","Attributions","for","a","particular","neuron","in","the","input","or","output","of","this","layer","are","computed","using","the","argument","neuron_selector","in","the","attribute","method",".","Currently",",","only","layers","with","a","single","tensor","input","or","output","are","supported",".","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",".","Currently",",","it","is","assumed","that","the","inputs","or","the","outputs","of","the","layer",",","depending","on","which","one","is","used","for","attribution",",","can","only","be","a","single","tensor",".","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",".","multiply_by_inputs","(","bool",",","optional",")",":","Indicates","whether","to","factor","model","inputs","'","multiplier","in","the","final","attribution","scores",".","In","the","literature","this","is","also","known","as","local","vs","global","attribution",".","If","inputs","'","multiplier","is","n't","factored","in","then","that","type","of","attribution","method","is","also","called","local","attribution",".","If","it","is",",","then","that","type","of","attribution","method","is","called","global",".","More","detailed","can","be","found","here",":","https",":","\/\/arxiv.org\/abs\/1711.06104","In","case","of","Neuron","Conductance",",","if","`","multiply_by_inputs","`","is","set","to","True",",","final","sensitivity","scores","are","being","multiplied","by","(","inputs","-","baselines",")","."]
code: def __init__(
      self,
      forward_func: Callable,
      layer: Module,
      device_ids: Union[None, List[int]] = None,
      multiply_by_inputs: bool = True,
  ) -> None:
      r"""
      Args:
  
          forward_func (Callable): The forward function of the model or any
                      modification of it
          layer (torch.nn.Module): Layer for which neuron attributions are computed.
                      Attributions for a particular neuron in the input or output
                      of this layer are computed using the argument neuron_selector
                      in the attribute method.
                      Currently, only layers with a single tensor input or output
                      are supported.
          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.
                      Currently, it is assumed that the inputs or the outputs
                      of the layer, depending on which one is used for
                      attribution, can only be a single tensor.
          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.
          multiply_by_inputs (bool, optional): Indicates whether to factor
                      model inputs' multiplier in the final attribution scores.
                      In the literature this is also known as local vs global
                      attribution. If inputs' multiplier isn't factored in
                      then that type of attribution method is also called local
                      attribution. If it is, then that type of attribution
                      method is called global.
                      More detailed can be found here:
                      https://arxiv.org/abs/1711.06104
  
                      In case of Neuron Conductance,
                      if `multiply_by_inputs` is set to True, final
                      sensitivity scores are being multiplied
                      by (inputs - baselines).
  
      """
      NeuronAttribution.__init__(self, forward_func, layer, device_ids)
      GradientAttribution.__init__(self, forward_func)
      self._multiply_by_inputs = multiply_by_inputs
  
file_path: captum/captum/attr/_core/neuron/neuron_conductance.py
imports: import warnings
  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, _is_tuple, _verify_select_neuron
  from captum._utils.gradient import compute_layer_gradients_and_eval
  from captum._utils.typing import BaselineType, TargetType, TensorOrTupleOfTensorsGeneric
  from captum.attr._utils.approximation_methods import approximation_parameters
  from captum.attr._utils.attribution import GradientAttribution, NeuronAttribution
  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 NeuronConductance object from inherited base classes: NeuronAttribution, GradientAttribution with example: obj = NeuronConductance(forward_func, layer, device_ids, multiply_by_inputs)