code: def parse_batchnorm_layer(
      keras_layer, input_names, input_shapes, data_reader
  ):
      assert (
          "BatchNormalization" in keras_layer["class_name"]
          or "QConv2DBatchnorm" in keras_layer["class_name"]
      )
  
      layer = parse_default_keras_layer(keras_layer, input_names)
  
      in_size = 1
      for dim in input_shapes[0][1:]:
          in_size *= dim
      layer["n_in"] = in_size
      layer["n_out"] = layer["n_in"]
      if len(input_shapes[0]) == 2:
          layer["n_filt"] = -1
      elif len(input_shapes[0]) == 3:
          layer["n_filt"] = input_shapes[0][2]
      elif len(input_shapes[0]) == 4:
          layer["n_filt"] = input_shapes[0][3]
  
      layer["use_gamma"] = keras_layer["config"]["scale"]
      if layer["use_gamma"]:
          layer["gamma_data"] = get_weights_data(
              data_reader, layer["name"], "gamma"
          )
      else:
          layer["gamma_data"] = 1
  
      layer["use_beta"] = keras_layer["config"]["center"]
      if layer["use_beta"]:
          layer["beta_data"] = get_weights_data(
              data_reader, layer["name"], "beta"
          )
      else:
          layer["beta_data"] = 0
  
      layer["mean_data"], layer["variance_data"] = get_weights_data(
          data_reader, layer["name"], ["moving_mean", "moving_variance"]
      )
  
      return layer, [shape for shape in input_shapes[0]]
  
imports: from hls4ml.converters.keras_to_hls import get_weights_data, keras_handler, parse_default_keras_layer
  from hls4ml.model.types import BinaryQuantizer, IntegerPrecisionType, TernaryQuantizer
label_desc: Use image node_id 4 for calling a global function with example usage: parse_batchnorm_layer(keras_layer, input_names, input_shapes, data_reader) and returns: layer,  unknown