code: def create_input_spec(
      input_shapes: Union[Mapping[str, Any], Tuple[int, ...]],
      input_dtypes: Union[Mapping[str, Any], jnp.dtype],
  ):
      if isinstance(input_shapes, tuple):
          return (input_shapes, input_dtypes)
      return {
          name: create_input_spec(
              input_shapes[name], input_dtypes[name]
          )
          for name in input_shapes.keys()
      }
  
imports: import collections.abc
  import functools
  import re
  from typing import Any, Callable, Dict, Mapping, Optional, Sequence, Tuple, Union
  from absl import logging
  import flax
  import flax.linen
  import jax
  from jax.example_libraries.optimizers import clip_grads
  import jax.numpy
  import ml_collections
  import optax
  from scenic.common_lib import debug_utils
  from scenic.dataset_lib import dataset_utils
  from scenic.projects.baselines.clip import model
  from scenic.projects.unloc import eval_utils
  from scenic.projects.unloc import model_utils
  from scenic.projects.vivit import model_utils
  from scenic.train_lib import pretrain_utils
  from scenic.train_lib import train_utils
  import scipy.ndimage
label_desc: Use image node_id 1 for calling a global function with example usage: create_input_spec(input_shapes, input_dtypes) and returns: unknown, input_shapes,  input_dtypes