class_docstr: Multihead Attention Pooling.
code: def __call__(self, x):
      n, _, d = x.shape
      probe = self.param(
          "probe", nn.initializers.xavier_uniform(), (1, 1, d), x.dtype
      )
      probe = jnp.tile(probe, [n, 1, 1])
  
      x = nn.MultiHeadDotProductAttention(
          num_heads=self.num_heads,
          kernel_init=nn.initializers.xavier_uniform(),
      )(probe, x)
  
      y = nn.LayerNorm()(x)
      x = x + attention_layers.MlpBlock(
          mlp_dim=self.mlp_dim, dtype=self.dtype, dropout_rate=0.0
      )(y, deterministic=True)
      return x[:, 0]
  
imports: from typing import Any, Callable, Optional, Sequence
  from absl import logging
  import flax
  import flax.linen
  import jax
  import jax.numpy
  import ml_collections
  import numpy
  from scenic.model_lib.base_models.multilabel_classification_model import MultiLabelClassificationModel
  from scenic.model_lib.layers import attention_layers
  from scenic.model_lib.layers import nn_layers
  import scipy
  from tensorflow.io import gfile
label_desc: Use image node_id 1 for calling the MAPHead obj's underlying member method code with example usage: obj.__call__(x) and returns: x