class_docstr: Multiview Transformer Encoder.
  
  Attributes:
    view_configs: Model configs for each view (e.g., num_heads, mlp_dim, etc).
    cross_view_fusion: Cross view fusion config.
    dropout_rate: Dropout rate.
    attention_dropout_rate: Dropout for attention heads.
    stochastic_depth: probability of dropping a layer linearly grows from 0 to
      the provided value. Our implementation of stochastic depth follows the
      timm library, which does per-example layer dropping and uses independent
      dropping patterns for each skip-connection.
    dtype: Any of activations.
docstr: Removes bottleneck tokens from input.
docstr_tok: ["Removes","bottleneck","tokens","from","input","."]
code: def _split_tokens_and_bottleneck(
      self, tokens: jnp.ndarray
  ) -> Tuple[jnp.ndarray, jnp.ndarray]:
      """Removes bottleneck tokens from input."""
      return (
          tokens[:, : -self.cross_view_fusion.bottleneck_tokens],
          tokens[:, -self.cross_view_fusion.bottleneck_tokens :],
      )
  
imports: import functools
  from typing import Any, List, Sequence, Tuple, Union
  import flax.linen
  import jax
  import jax.numpy
  import ml_collections
  from scenic.model_lib.layers import attention_layers
  from scenic.model_lib.layers import nn_layers
  from scenic.projects.baselines import vit
  from scenic.projects.mtv import model_utils
  from scenic.projects.vivit import model
  from scenic.train_lib import train_utils
label_desc: Use image node_id 1 for calling the MultiviewEncoder obj's underlying member method code with example usage: obj._split_tokens_and_bottleneck(tokens) and returns: tokens,  tokens