code: def backward(self, indexes, grad_outputs):
      x, gy0 = self.get_retained_inputs()
      gy0 = gy0.reshape(-1, *((1,) * (x.ndim - 1)))
      gy0 = chainer.functions.broadcast_to(gy0, x.shape)
      ggx2 = 2 * grad_outputs[0]
      gx = ggx2 * gy0
      ggy0 = ggx2 * x
      return gx, _sum.sum(
          ggy0, axis=tuple(six.moves.range(1, ggy0.ndim))
      )
  
file_path: chainer/chainer/functions/math/batch_l2_norm_squared.py
imports: import six
  import chainer
  from chainer.backends import cuda
  from chainer import function_node
  from chainer.functions.math import sum
  from chainer.utils import type_check
label_desc: Use image node_id 3 for calling the BatchL2NormSquaredGrad obj's underlying member method code with example usage: obj.backward(indexes, grad_outputs) and returns: gx,  _sum