code: def _determine_target(convert_to, minimum_deployment_target):
      """
      Infer the precise backend target, which could be one of ``milinternal``, ``neuralnetwork`` or ``mlprogram``
      """
      if minimum_deployment_target is None and convert_to is None:
          logger.warning(
              "When both 'convert_to' and 'minimum_deployment_target' not specified, "
              "'convert_to' is set to \"mlprogram\" and 'minimum_deployment_targer' is set to "
              "ct.target.iOS15 (which is same as ct.target.macOS12). "
              "Note: the model will not run on systems older than iOS15/macOS12/watchOS8/tvOS15. "
              "In order to make your model run on older system, please set the 'minimum_deployment_target' to iOS14/iOS13. "
              "Details please see the link: https://apple.github.io/coremltools/docs-guides/source/target-conversion-formats.html"
          )
      if minimum_deployment_target is not None:
          if (
              convert_to == "mlprogram"
              and minimum_deployment_target < AvailableTarget.iOS15
          ):
              raise ValueError(
                  f"When 'convert_to' is {convert_to}, the minimum deployment target "
                  f"must be at least iOS15/macOS12/watchOS8/tvOS15"
              )
  
          if (
              convert_to == "neuralnetwork"
              and minimum_deployment_target >= AvailableTarget.iOS15
          ):
              raise ValueError(
                  f"If minimum deployment target is iOS15/macOS12/watchOS8/tvOS15 or "
                  f"higher, then 'convert_to' cannot be {convert_to}. It must be "
                  f"'mlprogram'"
              )
  
      if convert_to is not None:
          return convert_to
      else:
          if minimum_deployment_target is None:
              return "mlprogram"
          elif minimum_deployment_target <= AvailableTarget.iOS14:
              return "neuralnetwork"
          else:
              return "mlprogram"
  
imports: import collections
  import gc
  import os
  from typing import List, Optional, Text, Union
  from coremltools import _LOWEST_ALLOWED_SPECIFICATION_VERSION_FOR_MILPROGRAM, _LOWEST_ALLOWED_SPECIFICATION_VERSION_FOR_NEURALNETWORK
  from coremltools import ComputeUnit
  from coremltools import __version__
  from coremltools import _logger
  from coremltools._deps import _HAS_TF_1, _HAS_TF_2, _HAS_TORCH, _HAS_TORCH_EXPORT_API
  from coremltools.converters._profile_utils import _profile
  from coremltools.converters.mil._deployment_compatibility import AvailableTarget, check_deployment_compatibility
  from coremltools.converters.mil.converter import mil_convert
  from coremltools.converters.mil.input_types import ClassifierConfig, EnumeratedShapes, ImageType, InputType, RangeDim, Shape, TensorType
  from coremltools.converters.mil.mil import Program, types
  from coremltools.converters.mil.mil.passes.defs.quantization import ComputePrecision
  from coremltools.converters.mil.mil.passes.defs.quantization import FP16ComputePrecision
  from coremltools.converters.mil.mil.passes.graph_pass import PassOption
  from coremltools.converters.mil.mil.passes.pass_pipeline import PassPipeline
  from coremltools.models import _METADATA_SOURCE, _METADATA_SOURCE_DIALECT, _METADATA_VERSION
  from coremltools.models.utils import _MLPACKAGE_EXTENSION
label_desc: Use image node_id 9 for calling a global function with example usage: _determine_target(convert_to, minimum_deployment_target) and returns: convert_to, str, str, str