code: def parse_batchnorm_layer(
      operation,
      layer_name,
      input_names,
      input_shapes,
      node,
      class_object,
      data_reader,
      config,
  ):
      assert "BatchNorm" in operation
  
      layer = {}
  
      layer["class_name"] = "BatchNormalization"
      layer["data_format"] = "channels_first"
      layer["name"] = layer_name
      layer["inputs"] = input_names
  
      # batchnorm para
      if node.op == "call_module":
          layer["epsilon"] = class_object.eps
          layer["use_gamma"] = layer["use_beta"] = class_object.affine
  
          if layer["use_gamma"]:
              layer["gamma_data"] = class_object.weight.data.numpy()
          else:
              layer["gamma_data"] = 1
  
          if layer["use_beta"]:
              layer["beta_data"] = class_object.bias.data.numpy()
          else:
              layer["beta_data"] = 0
  
          layer["mean_data"] = class_object.running_mean.data.numpy()
          layer["variance_data"] = class_object.running_var.data.numpy()
  
      in_size = 1
      for dim in input_shapes[0][1:]:
          in_size *= dim
  
      layer["n_in"] = layer["n_out"] = in_size
  
      if len(input_shapes[0]) == 2:
          layer["n_filt"] = -1
      elif len(input_shapes[0]) > 2:
          layer["n_filt"] = input_shapes[0][
              1
          ]  # Always channel first for Pytorch
  
      return layer, [shape for shape in input_shapes[0]]
  
label_desc: Use image node_id 3 for calling a global function with example usage: parse_batchnorm_layer(operation, layer_name, input_names, input_shapes, node, class_object, data_reader, config) and returns: layer,  unknown