code: def wider_next_conv(
      layer, start_dim, total_dim, n_add, weighted=True
  ):
      """wider next conv layer."""
      n_dim = get_n_dim(layer)
      if not weighted:
          return get_conv_class(n_dim)(
              layer.input_channel + n_add,
              layer.filters,
              kernel_size=layer.kernel_size,
              stride=layer.stride,
          )
      n_filters = layer.filters
      teacher_w, teacher_b = layer.get_weights()
  
      new_weight_shape = list(teacher_w.shape)
      new_weight_shape[1] = n_add
      new_weight = np.zeros(tuple(new_weight_shape))
  
      student_w = np.concatenate(
          (
              teacher_w[:, :start_dim, ...].copy(),
              add_noise(new_weight, teacher_w),
              teacher_w[:, start_dim:total_dim, ...].copy(),
          ),
          axis=1,
      )
      new_layer = get_conv_class(n_dim)(
          layer.input_channel + n_add,
          n_filters,
          kernel_size=layer.kernel_size,
          stride=layer.stride,
      )
      new_layer.set_weights((student_w, teacher_b))
      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 5 for calling a global function with example usage: wider_next_conv(layer, start_dim, total_dim, n_add, weighted) and returns: new_layer, get_conv_class