code: def interpolate_cls_tokens(
      cls: jnp.ndarray, restored_cls: jnp.ndarray
  ) -> jnp.ndarray:
      """Interpolates CLS tokens.
  
      This function is used to initialize CLS tokens for MTV models when the current
      CLS tokens have a different shape than the pretrained ones.
  
      Args:
        cls: A 4D float tensor of shape (1, new_time, 1, channels) representing the
          CLS tokens to be updated.
        restored_cls: A 4D float tensor of shape (1, old_time, 1, channels)
          representing the CLS tokens from which we load the weights.
  
      Returns:
        A 4D float tensor of shape (1, new_time, 1, channels) representing the
        resized CLS tokens.
      """
      logging.info(
          "Resizing CLS tokens from %s to %s.",
          restored_cls.shape,
          cls.shape,
      )
      zoom = (1, cls.shape[1] / restored_cls.shape[1], 1, 1)
      return scipy.ndimage.zoom(restored_cls, zoom, order=1)
  
imports: from typing import Any, Dict, List, Optional, Sequence
  from absl import logging
  import flax
  import jax.numpy
  import ml_collections
  import numpy
  from scenic.projects.vivit import model_utils
  from scenic.train_lib import train_utils
  import scipy.ndimage
label_desc: Use image node_id 4 for calling a global function with example usage: interpolate_cls_tokens(cls, restored_cls) and returns: scipy