code: def preprocess_for_eval(
      image_bytes, dtype=tf.float32, image_size=IMAGE_SIZE
  ):
      """Preprocesses the given image for evaluation.
  
      Args:
        image_bytes: Tensor; Representing an image binary of arbitrary size.
        dtype: TF data type; Data type of the image.
        image_size: int; The target size of the images.
  
      Returns:
        A preprocessed image `Tensor`.
      """
      image = _decode_and_center_crop(image_bytes, image_size)
      image = tf.reshape(image, [image_size, image_size, 3])
      if dtype not in [tf.int32, tf.int64, tf.uint32, tf.uint64]:
          image = normalize_image(image)
          image = tf.image.convert_image_dtype(image, dtype=dtype)
      else:
          image = tf.cast(image, dtype=dtype)
      return image
  
file_path: scenic/scenic/dataset_lib/imagenet_dataset.py
imports: import functools
  from typing import Optional
  from absl import logging
  from flax import jax_utils
  import jax
  import jax.numpy
  from scenic.dataset_lib import dataset_utils
  from scenic.dataset_lib import datasets
  import tensorflow
  import tensorflow_datasets
label_desc: Use image node_id 8 for calling a global function with example usage: preprocess_for_eval(image_bytes, dtype, image_size) and returns: image