code: def maxpool_override():
      def MaxPoolGrad(op, grad):
          inp = op.inputs[0]
          op_args = [
              op.get_attr("ksize"),
              op.get_attr("strides"),
              op.get_attr("padding"),
          ]
          smooth_out = tf.nn.avg_pool(inp**2, *op_args) / (
              1e-2 + tf.nn.avg_pool(tf.abs(inp), *op_args)
          )
          inp_smooth_grad = tf.gradients(smooth_out, [inp], grad)[0]
          return inp_smooth_grad
  
      return {"MaxPool": MaxPoolGrad}
  
file_path: lucid/lucid/scratch/rl_util/attribution.py
imports: import numpy
  import tensorflow
  import lucid.optvis.render
  import itertools
  from lucid.misc.gradient_override import gradient_override_map
label_desc: Use image node_id 1 for calling a global function with example usage: maxpool_override() and returns: dict, inp_smooth_grad