code: def extract_inputs_from_edge_program(
      exported_program,
  ) -> List["ct.TensorType"]:
      module = exported_program.graph_module
      inputs_to_parameters = (
          exported_program.graph_signature.inputs_to_parameters
      )
      inputs_to_buffers = (
          exported_program.graph_signature.inputs_to_buffers
      )
      inputs = []
      for node in module.graph.nodes:
          if (
              node.op == "placeholder"
              and node.meta is not None
              and "val" in node.meta
          ):
              if isinstance(node.meta["val"], Tensor):
                  if (
                      node.name not in inputs_to_parameters
                      and node.name not in inputs_to_buffers
                  ):
                      inputs.append(
                          to_coreml_tensor_type(
                              node.name, node.meta["val"]
                          )
                      )
              else:
                  raise NotImplementedError(
                      "Only Tensor inputs handled yet"
                  )
      return inputs
  
imports: from typing import List
  from torch import Tensor
  import coremltools
  from .torchscript_utils import torch_to_mil_types
label_desc: Use image node_id 2 for calling a global function with example usage: extract_inputs_from_edge_program(exported_program) and returns: inputs