code: def _set_symbolic_inputs(proto, symbolic_inputs):
      # Set symbolic input shapes by -1 infered from graph
      for input_name, shape in symbolic_inputs.items():
          lb = [1 if is_symbolic(d) else d for d in shape]
          ub = [-1 if is_symbolic(d) else d for d in shape]
          set_multiarray_ndshape_range(
              proto, input_name, lower_bounds=lb, upper_bounds=ub
          )
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import logging
  from collections import defaultdict
  from coremltools.converters.mil.input_types import ClassifierConfig, ImageType, EnumeratedShapes, Shape, RangeDim
  from coremltools.models import MLModel
  from coremltools.models import neural_network
  import coremltools.models.datatypes
  from coremltools.converters.mil.mil import types
  from coremltools.converters.mil.mil.types.symbolic import any_symbolic, any_variadic, is_symbolic
  from .op_mapping import convert_ops
  from coremltools.models.neural_network import flexible_shape_utils
  from coremltools.models.neural_network.flexible_shape_utils import update_image_size_range, add_enumerated_image_sizes, set_multiarray_ndshape_range, add_multiarray_ndshape_enumeration
  from .passes.nn_passes import nn_backend_passes
  from coremltools.converters._profile_utils import _profile
label_desc: Use image node_id 4 for calling a global function with example usage: _set_symbolic_inputs(proto, symbolic_inputs) without return types