code: def test_apply_weight_standardization(
      rng, function, channel_axis, kwargs, param_name
  ):
      eps = 1e-5
      output_stat = False
  
      """
      Graph overview of the weight standardization
          inputs    callback           parent      output
          -------   --------         ----------   --------
             x --------------->|
             w ------> WS ---->|----> function -----> y
             b --------------->|
      """
  
      x = nn.Variable.from_numpy_array(
          rng.randn(2, 8, 4, 4).astype(np.float32)
      )
  
      def ws_callback(w):
          return F.weight_standardization(
              w, channel_axis, eps=eps, output_stat=output_stat
          )
  
      y = function(x, apply_w=ws_callback, **kwargs)
  
      # check forward backward
      y.forward()
      y.backward()
  
      w = nn.get_parameters()[param_name].d
      w_standardized = y.parent.inputs[1].d
  
      ref_w_standardized = ref_weight_standardization(
          w, channel_axis, eps, output_stat
      )
  
      assert_allclose(
          w_standardized, ref_w_standardized, atol=1e-02, rtol=1e-5
      )
  
file_path: nnabla/python/test/function/test_weight_standardization.py
imports: import pytest
  import numpy
  import nnabla
  import nnabla.functions
  import nnabla.parametric_functions
  from nnabla.testing import assert_allclose
  from nbla_test_utils import list_context
  from nnabla.normalization_functions import _get_axes_excluding
label_desc: Use image node_id 6 for calling a global function with example usage: test_apply_weight_standardization(rng, function, channel_axis, kwargs, param_name) and returns: F