class_docstr: FFN block for predicting continuous outputs, e.g. bounding box coordinates.
  
  Attributes:
    out_dim: Size of output of this mlp.
    num_layers: Number of layers.
    mlp_dim: Size of hidden dimension of dense layers.
    hidden_activation: Activation function of hidden layers.
    out_activation: Activation of the output.
    dtype: Data type, e.g. jnp.float32.
class_docstr_tok: ["FFN","block","for","predicting","continuous","outputs",",","e.g",".","bounding","box","coordinates",".","Attributes",":","out_dim",":","Size","of","output","of","this","mlp",".","num_layers",":","Number","of","layers",".","mlp_dim",":","Size","of","hidden","dimension","of","dense","layers",".","hidden_activation",":","Activation","function","of","hidden","layers",".","out_activation",":","Activation","of","the","output",".","dtype",":","Data","type",",","e.g",".","jnp.float32","."]
docstr: Applies FFN MLP block to inputs for prediction.
docstr_tok: ["Applies","FFN","MLP","block","to","inputs","for","prediction","."]
code: def __call__(self, inputs: jnp.ndarray) -> jnp.ndarray:
      """Applies FFN MLP block to inputs for prediction."""
      x = inputs
      mlp_dim = self.mlp_dim or x.shape[-1]
      for _ in range(self.num_layers - 1):
          x = nn.Dense(mlp_dim, dtype=self.dtype)(x)
          if self.hidden_activation is not None:
              x = self.hidden_activation(x)
  
      x = nn.Dense(self.out_dim, kernel_init=nn.zeros)(x)
      if self.out_activation is not None:
          x = self.out_activation(x)  # pylint: disable=not-callable
      return x
  
imports: import abc
  import functools
  from typing import Any, Callable, Dict, Optional, Tuple, Union, Sequence
  from absl import logging
  from big_vision.models import bit
  from big_vision.models import vit
  import flax
  import flax.linen
  import jax
  import jax.numpy
  import ml_collections
  import numpy
  from scenic.model_lib.base_models import box_utils
  from scenic.projects.owl_vit import utils
  from scenic.projects.owl_vit.clip import layers
  from scenic.projects.owl_vit.clip import model
label_desc: Use image node_id 1 for calling the PredictorMLP obj's underlying member method code with example usage: obj.__call__(inputs) and returns: x