code: def parse_unsqueeze_layer(
      operation,
      layer_name,
      input_names,
      input_shapes,
      node,
      class_object,
      data_reader,
      config,
  ):
      assert operation == "unsqueeze"
  
      layer = {}
      layer["class_name"] = "Reshape"
      layer["name"] = layer_name
      layer["inputs"] = input_names
  
      # Unlike in 'squeeze' in 'unsqueeze', dim argument must exist
      output_shape = [i for i in input_shapes[0]]
      if len(node.args) > 1:  # Specified as unsqueeze(x, n)
          squeeze_dim = node.args[1]
      else:  # Specified as unsqueeze(x, dim=n)
          squeeze_dim = node.kwargs["dim"]
      # insert() will add an element before the index, unsqueeze expects the location
      index = output_shape.index(output_shape[squeeze_dim])  # + 1
      output_shape.insert(index, 1)
  
      layer["target_shape"] = output_shape.copy()
      if layer["target_shape"][0] is None:
          del layer["target_shape"][0]
  
      return layer, output_shape
  
imports: import numpy
  from hls4ml.converters.pytorch_to_hls import pytorch_handler
label_desc: Use image node_id 3 for calling a global function with example usage: parse_unsqueeze_layer(operation, layer_name, input_names, input_shapes, node, class_object, data_reader, config) and returns: layer,  output_shape