code: def fused_batch_normalization_backward_backward(
      grad_inputs,
      inputs,
      input_shapes,
      outputs,
      output_shapes,
      axes=(1,),
      decay_rate=0.9,
      eps=1e-05,
      batch_stat=True,
      nonlinearity="relu",
  ):
      """
      Args:
        grad_inputs (list of :obj:`nnabla.Variable`): Propagated grads to this backward function.
        inputs (list of :obj:`nnabla.Variable` and None): Input Variables of the forward function
            if this backward function depends on it. Otherwise, None is set instead.
        input_shapes (list of tuple of :obj:`int`): Input shapes of the forward function.
            The shapes of the inputs in which None is set can be passed.
        outputs (list of :obj:`nnabla.Variable` and None): Output Variables of the forward function
            if this backward function depends on it. Otherwise, None is set instead.
        output_shapes (list of tuple of :obj:`int`): Output shapes of the forward function.
            The shapes of the outputs in which None is set can be passed.
        kwargs (dict of arguments): Dictionary of the corresponding function arguments.
  
      Return:
        list of Variable: Return the gradients wrt inputs of the corresponding function.
      """
      is_add = True if len(inputs) == 8 else False
      if is_add:
          g_dx0 = grad_inputs[0]
          g_db0 = grad_inputs[1]
          g_dg0 = grad_inputs[2]
          g_dz0 = grad_inputs[3]
          dy = inputs[0]
          x0 = inputs[1]
          b0 = inputs[2]
          g0 = inputs[3]
          rm = inputs[4]
          rv = inputs[5]
          y0 = inputs[6]
          z0 = inputs[7]
      else:
          g_dx0 = grad_inputs[0]
          g_db0 = grad_inputs[1]
          g_dg0 = grad_inputs[2]
          dy = inputs[0]
          x0 = inputs[1]
          b0 = inputs[2]
          g0 = inputs[3]
          rm = inputs[4]
          rv = inputs[5]
          y0 = inputs[6]
          z0 = None
          g_dz0 = None
  
      g_dy, g_x0, g_b0, g_g0 = double_backward(
          g_dx0,
          g_db0,
          g_dg0,
          g_dz0,
          dy,
          x0,
          b0,
          g0,
          rm,
          rv,
          y0,
          z0,
          axes,
          decay_rate,
          eps,
          nonlinearity,
          batch_stat,
      )
      if is_add:
          return g_dy, g_x0, g_b0, g_g0, None, None, None, None
      else:
          return g_dy, g_x0, g_b0, g_g0, None, None, None
  
imports: import nnabla
  import nnabla.function
  import nnabla.functions
  from nnabla.function import PythonFunction
  from .batch_normalization import double_backward_for_batch
  from .batch_normalization import double_backward_for_global
  from .utils import no_grad
label_desc: Use image node_id 3 for calling a global function with example usage: fused_batch_normalization_backward_backward(grad_inputs, inputs, input_shapes, outputs, output_shapes, axes, decay_rate, eps, batch_stat, nonlinearity) and returns: g_dy,  g_x0,  g_b0,  g_g0,  None,  None,  None,  None, g_dy,  g_x0,  g_b0,  g_g0,  None,  None,  None