class_docstr: Embeds batches of token IDs into feature space.
  
  Attributes:
    vocab_size: The size of the vocabulary (i.e., the number of embeddings).
    embedding_size: The dimensionality of the embeddings.
    embedding_init: The initializer used to initialize the embeddings.
    frozen: Freezes the embeddings table, keeping it fixed at initial values.
    dropout_rate: Percentage of units to drop after embedding the inputs.
    word_dropout_rate: Percentage of input words to replace with unk_idx.
    unk_idx: The index (integer) to use to replace inputs for word dropout.
code: def setup(self):
      self.embedding = self.param(
          "embedding",
          self.embedding_init,
          (self.vocab_size, self.embedding_size),
          self.dtype,
      )
      self.dropout_layer = nn.Dropout(rate=self.dropout_rate)
      self.word_dropout_layer = WordDropout(
          dropout_rate=self.word_dropout_rate, unk_idx=self.unk_idx
      )
  
imports: from __future__ import annotations
  import functools
  from typing import Any, Callable, Optional
  from flax import linen
  import jax
  from jax import numpy
  from jax._src.typing import Array
label_desc: Use image node_id 1 for calling the Embedder obj's underlying member method code with example usage: obj.setup() without return types