class_docstr: Using tf.gradients to implement the backpropagation was
  inspired by the gradient-based implementation approach proposed by Ancona et al, ICLR 2018. Note
  that this package does not currently use the reveal-cancel rule for ReLu units proposed in DeepLIFT.
class_docstr_tok: ["Using","tf.gradients","to","implement","the","backpropagation","was","inspired","by","the","gradient-based","implementation","approach","proposed","by","Ancona","et","al",",","ICLR","2018",".","Note","that","this","package","does","not","currently","use","the","reveal-cancel","rule","for","ReLu","units","proposed","in","DeepLIFT","."]
docstr: Passes a gradient op creation request to the correct handler.
          
docstr_tok: ["Passes","a","gradient","op","creation","request","to","the","correct","handler","."]
code: def custom_grad(self, op, *grads):
      """Passes a gradient op creation request to the correct handler."""
      type_name = (
          op.type[5:] if op.type.startswith("shap_") else op.type
      )
      out = op_handlers[type_name](
          self, op, *grads
      )  # we cut off the shap_ prefix before the lookup
      return out
  
imports: import warnings
  import numpy
  from packaging import version
  from ...utils._exceptions import DimensionError
  from .._explainer import Explainer
  from ..tf_utils import _get_graph, _get_model_inputs, _get_model_output, _get_session
  from .deep_utils import _check_additivity
label_desc: Use image node_id 8 for calling the TFDeep obj's underlying member method code with example usage: obj.custom_grad(op) and returns: out