code: def wider_bn(layer, start_dim, total_dim, n_add, weighted=True):
      """wider batch norm layer."""
      n_dim = get_n_dim(layer)
      if not weighted:
          return get_batch_norm_class(n_dim)(layer.num_features + n_add)
  
      weights = layer.get_weights()
  
      new_weights = [
          add_noise(np.ones(n_add, dtype=np.float32), np.array([0, 1])),
          add_noise(
              np.zeros(n_add, dtype=np.float32), np.array([0, 1])
          ),
          add_noise(
              np.zeros(n_add, dtype=np.float32), np.array([0, 1])
          ),
          add_noise(np.ones(n_add, dtype=np.float32), np.array([0, 1])),
      ]
  
      student_w = tuple()
      for weight, new_weight in zip(weights, new_weights):
          temp_w = weight.copy()
          temp_w = np.concatenate(
              (
                  temp_w[:start_dim],
                  new_weight,
                  temp_w[start_dim:total_dim],
              )
          )
          student_w += (temp_w,)
      new_layer = get_batch_norm_class(n_dim)(
          layer.num_features + n_add
      )
      new_layer.set_weights(student_w)
      return new_layer
  
file_path: nni/nni/algorithms/hpo/networkmorphism_tuner/layer_transformer.py
imports: import numpy
  from .layers import StubDense, StubReLU, get_batch_norm_class, get_conv_class, get_n_dim
label_desc: Use image node_id 6 for calling a global function with example usage: wider_bn(layer, start_dim, total_dim, n_add, weighted) and returns: new_layer, get_batch_norm_class