code: def setup_impl(self, inputs, outputs):
      # inputs:  dy, x, beta, gamma, rmean, rvar, y(, z)
      # outputs: dx, dbeta, dgamma(, dz)
      # y (output of FusedBN) is needed for computing the mask for the relu backward.
      inputs_fwd, outputs_fwd = self._create_fwd_inputs_outputs(
          inputs, outputs
      )
      self._func.setup(inputs_fwd, outputs_fwd)
      dx_shape = inputs_fwd[0].shape
      db_shape = inputs_fwd[1].shape
      dg_shape = inputs_fwd[2].shape
      dz_shape = inputs_fwd[5].shape if self._is_add else None
      outputs[0].reset_shape(dx_shape, True)
      outputs[1].reset_shape(db_shape, True)
      outputs[2].reset_shape(dg_shape, True)
      outputs[3].reset_shape(dz_shape, True) if self._is_add else 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 11 for calling the FusedBatchNormalizationBackward obj's underlying member method code with example usage: obj.setup_impl(inputs, outputs) without return types