docstr: The `inputs` param in `ct.convert` is not provided, so all inputs in the TF model with `None`
  dim will have a range shape where lower-bound/default/upper-bound are sanitized to finite
  numbers and warns users.
docstr_tok: ["The","`","inputs","`","param","in","`","ct.convert","`","is","not","provided",",","so","all","inputs","in","the","TF","model","with","`","None","`","dim","will","have","a","range","shape","where","lower-bound\/default\/upper-bound","are","sanitized","to","finite","numbers","and","warns","users","."]
code: def test_dynamic_shape_no_inputs(
      self, backend, compute_unit, model_format
  ):
      """
      The `inputs` param in `ct.convert` is not provided, so all inputs in the TF model with `None`
      dim will have a range shape where lower-bound/default/upper-bound are sanitized to finite
      numbers and warns users.
      """
      convert_to = backend[0]
      model_param = self.model
      if model_format == "h5":
          model_param = self.h5_model_path
      elif model_format == "saved_model":
          model_param = self.saved_model_path
  
      if convert_to == "mlprogram":
          with pytest.warns(
              UserWarning,
              match="Some dimensions in the input shape are unknown, hence they are set to "
              "flexible ranges with lower bound and default value = 1, and upper bound = 2. "
              "To set different values for the default shape and upper bound, please use "
              "the ct.RangeDim.*",
          ):
              mlmodel = ct.convert(
                  model_param,
                  source="tensorflow",
                  convert_to=convert_to,
                  compute_units=compute_unit,
              )
      else:
          mlmodel = ct.convert(
              model_param,
              source="tensorflow",
              convert_to=convert_to,
              compute_units=compute_unit,
          )
  
      spec = mlmodel.get_spec()
      assert list(
          spec.description.input[0].type.multiArrayType.shape
      ) == [1, 1, 1, 16]
      assert (
          spec.description.input[0]
          .type.multiArrayType.shapeRange.sizeRanges[2]
          .lowerBound
          == 1
      )
      assert (
          spec.description.input[0]
          .type.multiArrayType.shapeRange.sizeRanges[2]
          .upperBound
          == -1
          if convert_to == "neuralnetwork"
          else 2
      )
  
imports: import itertools
  import os
  import tempfile
  import numpy
  import PIL.Image
  import pytest
  import coremltools
  from coremltools._deps import _HAS_TF_2, _HAS_TORCH, MSG_TF2_NOT_FOUND, MSG_TORCH_NOT_FOUND
  from coremltools.converters.mil import Builder
  from coremltools.converters.mil.testing_reqs import backends, compute_units
label_desc: Use image node_id 4 for calling the TestFlexibleInputShapesTF obj's underlying member method code with example usage: obj.test_dynamic_shape_no_inputs(backend, compute_unit, model_format) without return types