class_docstr: Computes attribution of the given neuron using guided backpropagation.
  Guided backpropagation computes the gradient of the target neuron
  with respect to the input, but gradients of ReLU functions are overridden
  so that only non-negative gradients are backpropagated.
  
  More details regarding the guided backpropagation algorithm can be found
  in the original paper here:
  https://arxiv.org/abs/1412.6806
  
  Warning: Ensure that all ReLU operations in the forward function of the
  given model are performed using a module (nn.module.ReLU).
  If nn.functional.ReLU is used, gradients are not overridden appropriately.
class_docstr_tok: ["Computes","attribution","of","the","given","neuron","using","guided","backpropagation",".","Guided","backpropagation","computes","the","gradient","of","the","target","neuron","with","respect","to","the","input",",","but","gradients","of","ReLU","functions","are","overridden","so","that","only","non-negative","gradients","are","backpropagated",".","More","details","regarding","the","guided","backpropagation","algorithm","can","be","found","in","the","original","paper","here",":","https",":","\/\/arxiv.org\/abs\/1412.6806","Warning",":","Ensure","that","all","ReLU","operations","in","the","forward","function","of","the","given","model","are","performed","using","a","module","(","nn.module.ReLU",")",".","If","nn.functional.ReLU","is","used",",","gradients","are","not","overridden","appropriately","."]
docstr: Args:
  
      model (nn.Module):  The reference to PyTorch model instance.
      layer (Module): Layer for which neuron attributions are computed.
                    Attributions for a particular neuron in the output of
                    this layer are computed using the argument neuron_selector
                    in the attribute method.
                    Currently, only layers with a single tensor output are
                    supported.
      device_ids (list[int]): Device ID list, necessary only if model
                    applies a DataParallel model. This allows reconstruction of
                    intermediate outputs from batched results across devices.
                    If model is given as the DataParallel model itself,
                    then it is not necessary to provide this argument.
docstr_tok: ["Args",":","model","(","nn.Module",")",":","The","reference","to","PyTorch","model","instance",".","layer","(","Module",")",":","Layer","for","which","neuron","attributions","are","computed",".","Attributions","for","a","particular","neuron","in","the","output","of","this","layer","are","computed","using","the","argument","neuron_selector","in","the","attribute","method",".","Currently",",","only","layers","with","a","single","tensor","output","are","supported",".","device_ids","(","list","[","int","]",")",":","Device","ID","list",",","necessary","only","if","model","applies","a","DataParallel","model",".","This","allows","reconstruction","of","intermediate","outputs","from","batched","results","across","devices",".","If","model","is","given","as","the","DataParallel","model","itself",",","then","it","is","not","necessary","to","provide","this","argument","."]
code: def __init__(
      self,
      model: Module,
      layer: Module,
      device_ids: Union[None, List[int]] = None,
  ) -> None:
      r"""
      Args:
  
          model (nn.Module):  The reference to PyTorch model instance.
          layer (Module): Layer for which neuron attributions are computed.
                        Attributions for a particular neuron in the output of
                        this layer are computed using the argument neuron_selector
                        in the attribute method.
                        Currently, only layers with a single tensor output are
                        supported.
          device_ids (list[int]): Device ID list, necessary only if model
                        applies a DataParallel model. This allows reconstruction of
                        intermediate outputs from batched results across devices.
                        If model is given as the DataParallel model itself,
                        then it is not necessary to provide this argument.
      """
      NeuronAttribution.__init__(self, model, layer, device_ids)
      GradientAttribution.__init__(self, model)
      self.guided_backprop = GuidedBackprop(model)
  
file_path: captum/captum/attr/_core/neuron/neuron_guided_backprop_deconvnet.py
imports: from typing import Any, Callable, List, Tuple, Union
  from captum._utils.gradient import construct_neuron_grad_fn
  from captum._utils.typing import TensorOrTupleOfTensorsGeneric
  from captum.attr._core.guided_backprop_deconvnet import Deconvolution, GuidedBackprop
  from captum.attr._utils.attribution import GradientAttribution, NeuronAttribution
  from captum.log import log_usage
  from torch.nn import Module
label_desc: Use image node_id 1 to create a new NeuronGuidedBackprop object from inherited base classes: NeuronAttribution, GradientAttribution with example: obj = NeuronGuidedBackprop(model, layer, device_ids)