docstr: Parameters
  ----------
  backbone_cfg
      The cfg of the backbone model
  weight_initializer
  bias_initializer
docstr_tok: ["Parameters","--","--","--","--","--","backbone_cfg","The","cfg","of","the","backbone","model","weight_initializer","bias_initializer"]
code: def __init__(
      self, backbone_cfg, weight_initializer=None, bias_initializer=None
  ):
      """
  
      Parameters
      ----------
      backbone_cfg
          The cfg of the backbone model
      weight_initializer
      bias_initializer
      """
      super().__init__()
      self.backbone_model = MobileBertModel.from_cfg(backbone_cfg)
      if weight_initializer is None:
          weight_initializer = self.backbone_model.weight_initializer
      if bias_initializer is None:
          bias_initializer = self.backbone_model.bias_initializer
      # Construct nsp_classifier for next sentence prediction
      self.nsp_classifier = nn.Dense(
          units=2,
          in_units=self.backbone_model.units,
          weight_initializer=weight_initializer,
          dtype=self.backbone_model.dtype,
      )
      self.mlm_decoder = nn.HybridSequential()
      # Extra non-linear layer
      self.mlm_decoder.add(
          nn.Dense(
              units=self.backbone_model.units,
              in_units=self.backbone_model.units,
              flatten=False,
              weight_initializer=weight_initializer,
              bias_initializer=bias_initializer,
              dtype=self.backbone_model.dtype,
          )
      )
      self.mlm_decoder.add(
          get_activation(self.backbone_model.activation)
      )
      # use basic layer normalization for pretaining
      self.mlm_decoder.add(
          nn.LayerNorm(
              epsilon=self.backbone_model.layer_norm_eps,
              in_channels=self.backbone_model.units,
          )
      )
      # only load the dense weights with a re-initialized bias
      # parameters are stored in 'word_embed_bias' which is
      # not used in original embedding
      self.embedding_table = nn.Dense(
          units=self.backbone_model.vocab_size,
          in_units=self.backbone_model.embed_size,
          flatten=False,
          bias_initializer=bias_initializer,
          dtype=self.backbone_model.dtype,
      )
      self.embedding_table.weight = (
          self.backbone_model.word_embed.weight
      )
      if self.backbone_model.embed_size != self.backbone_model.units:
          self.extra_table = nn.Dense(
              units=self.backbone_model.vocab_size,
              in_units=self.backbone_model.units
              - self.backbone_model.embed_size,
              flatten=False,
              use_bias=False,
              bias_initializer=bias_initializer,
              dtype=self.backbone_model.dtype,
          )
  
imports: import os
  from typing import Tuple, Optional
  import mxnet
  from mxnet import use_np, np, npx
  from mxnet.gluon import HybridBlock, nn
  from .base import BACKBONE_REGISTRY
  from ..op import select_vectors_by_position
  from ..base import get_model_zoo_home_dir, get_repo_model_zoo_url, get_model_zoo_checksum_dir
  from ..layers import InitializerType, PositionwiseFFN, PositionalEmbedding, get_norm_layer, get_activation
  from ..initializer import TruncNorm
  from ..utils.config import CfgNode
  from ..utils.misc import load_checksum_stats, download
  from ..utils.registry import Registry
  from ..attention_cell import MultiHeadAttentionCell, gen_self_attn_mask
  from ..data.tokenizers import HuggingFaceWordPieceTokenizer
label_desc: Use image node_id 1 to create a new MobileBertForPretrain object from inherited base classes: HybridBlock with example: obj = MobileBertForPretrain(backbone_cfg, weight_initializer, bias_initializer)