class_docstr: ATTENTION:
      Currently, innvestigating a network only works if all
      layers that have to be inverted are specified explicitly
      and registered as a module. If., for example,
      only the functional max_poolnd is used, the inversion will not work.
class_docstr_tok: ["ATTENTION",":","Currently",",","innvestigating","a","network","only","works","if","all","layers","that","have","to","be","inverted","are","specified","explicitly","and","registered","as","a","module",".","If.",",","for","example",",","only","the","functional","max_poolnd","is","used",",","the","inversion","will","not","work","."]
docstr: If there is a negative gradient, change it to zero.
docstr_tok: ["If","there","is","a","negative","gradient",",","change","it","to","zero","."]
code: def relu_hook_function(module, grad_in, grad_out):
      """
      If there is a negative gradient, change it to zero.
      """
      return (torch.clamp(grad_in[0], min=0.0),)
  
file_path: tensorwatch/tensorwatch/saliency/epsilon_lrp.py
imports: import torch
  import numpy
  from .inverter_util import RelevancePropagator
label_desc: Use image node_id 5 for calling the InnvestigateModel obj's underlying member method code with example usage: obj.relu_hook_function(module, grad_in, grad_out) and returns: torch