class_docstr: Computes the gradient of the ReLU function.
  
  This function takes 3 variables a, b, and c, and
  computes f(a, b, c) = sign(b) * c with backpropagation
  where operations are dones in elementwise manner
  and sign(x) = 1 if x > 0 is positive and 0 otherwise.
  
  As the gradient of f with respect to a and b are 0,
  we do not backpropagate errors toward them for computational efficiency.
class_docstr_tok: ["Computes","the","gradient","of","the","ReLU","function",".","This","function","takes","3","variables","a",",","b",",","and","c",",","and","computes","f","(","a",",","b",",","c",")","=","sign","(","b",")","*","c","with","backpropagation","where","operations","are","dones","in","elementwise","manner","and","sign","(","x",")","=","1","if","x",">","0","is","positive","and","0","otherwise",".","As","the","gradient","of","f","with","respect","to","a","and","b","are","0",",","we","do","not","backpropagate","errors","toward","them","for","computational","efficiency","."]
code: def __init__(self, y):
      super(ReLUGradCudnn, self).__init__()
      self.y = y
  
imports: import numpy
  import chainer
  from chainer.backends import cuda
  from chainer.backends import intel64
  from chainer import function_node
  from chainer import utils
  from chainer.utils import type_check
  import chainerx
label_desc: Use image node_id 1 to create a new ReLUGradCudnn object from inherited base classes: function_node with example: obj = ReLUGradCudnn(y)