code: def __init__(
      self,
      x,
      weight,
      bias,
      beta,
      gamma,
      rmean,
      rvar,
      z,
      base_axis,
      pad,
      stride,
      dilation,
      group,
      channel_last,
      decay_rate,
      eps,
      batch_stat,
      nonlinearity,
      nonlinearity_args,
      pad_mode,
      constant_value,
  ):
      from collections import OrderedDict
  
      inputs = OrderedDict()
      xvar = nn.Variable.from_numpy_array(x)
      weightvar = nn.Variable.from_numpy_array(weight)
      inputs["x"] = xvar
      inputs["weight"] = weightvar
      biasvar = None
      betavar = None
      gammavar = None
      rmeanvar = None
      rvarvar = None
      zvar = None
      if bias is not None:
          biasvar = nn.Variable.from_numpy_array(bias)
          inputs["bias"] = biasvar
      if beta is not None:
          betavar = nn.Variable.from_numpy_array(beta)
          gammavar = nn.Variable.from_numpy_array(gamma)
          rmeanvar = nn.Variable.from_numpy_array(rmean)
          rvarvar = nn.Variable.from_numpy_array(rvar)
          inputs["beta"] = betavar
          inputs["gamma"] = gammavar
          inputs["rmean"] = rmeanvar
          inputs["rvar"] = rvarvar
      if z is not None:
          zvar = nn.Variable.from_numpy_array(z)
          inputs["z"] = zvar
  
      spatial_dims = xvar.ndim - (base_axis + 1)
      assert len(pad) == spatial_dims or len(pad) == 2 * spatial_dims
      if len(pad) == spatial_dims:
          pad_width = tuple(p for _ in range(2) for p in pad)
      else:  # if len(pad) == 2 * spatial_dims:
          pad_width = pad
      h = F.pad(xvar, pad_width, pad_mode, constant_value)
      conv_pad = (0,) * spatial_dims
      h = F.convolution(
          h,
          weightvar,
          biasvar,
          base_axis,
          conv_pad,
          stride,
          dilation,
          group,
          channel_last,
      )
      if beta is not None:
          h = F.batch_normalization(
              h,
              betavar,
              gammavar,
              rmeanvar,
              rvarvar,
              [h.ndim - 1 if channel_last else base_axis],
              decay_rate,
              eps,
              batch_stat,
          )
      if z is not None:
          h = F.add2(h, zvar)
      h = ref_activation(h, nonlinearity, nonlinearity_args)
      self.input_dict = inputs
      self.output = h
  
file_path: nnabla/python/test/function/test_fused_convolution.py
imports: import pytest
  import numpy
  import nnabla
  import nnabla.functions
  import nnabla.ext_utils
  from nbla_test_utils import list_context
label_desc: Use image node_id 1 to create a new RefFusedConvolutionGraph object from inherited base classes: object with example: obj = RefFusedConvolutionGraph(x, weight, bias, beta, gamma, rmean, rvar, z, base_axis, pad, stride, dilation, group, channel_last, decay_rate, eps, batch_stat, nonlinearity, nonlinearity_args, pad_mode, constant_value)