class_docstr: BERT model ("Bidirectional Encoder Representations from Transformers").
  
  Example usage:
  
      ```python
      # Already been converted into WordPiece token ids
      input_ids = tf.constant([[31, 51, 99], [15, 5, 0]])
      input_mask = tf.constant([[1, 1, 1], [1, 1, 0]])
      token_type_ids = tf.constant([[0, 0, 1], [0, 2, 0]])
  
      config = modeling.BertConfig(vocab_size=32000, hidden_size=512,
      num_hidden_layers=8, num_attention_heads=6, intermediate_size=1024)
  
      model = modeling.BertModel(config=config, is_training=True,
      input_ids=input_ids, input_mask=input_mask, token_type_ids=token_type_ids)
  
      label_embeddings = tf.get_variable(...)
      pooled_output = model.get_pooled_output()
      logits = tf.matmul(pooled_output, label_embeddings)
      ...
      ```
class_docstr_tok: ["BERT","model","(","``","Bidirectional","Encoder","Representations","from","Transformers","''",")",".","Example","usage",":","``","`","python","#","Already","been","converted","into","WordPiece","token","ids","input_ids","=","tf.constant","(","[","[","31",",","51",",","99","]",",","[","15",",","5",",","0","]","]",")","input_mask","=","tf.constant","(","[","[","1",",","1",",","1","]",",","[","1",",","1",",","0","]","]",")","token_type_ids","=","tf.constant","(","[","[","0",",","0",",","1","]",",","[","0",",","2",",","0","]","]",")","config","=","modeling.BertConfig","(","vocab_size=32000",",","hidden_size=512",",","num_hidden_layers=8",",","num_attention_heads=6",",","intermediate_size=1024",")","model","=","modeling.BertModel","(","config=config",",","is_training=True",",","input_ids=input_ids",",","input_mask=input_mask",",","token_type_ids=token_type_ids",")","label_embeddings","=","tf.get_variable","(","...",")","pooled_output","=","model.get_pooled_output","(",")","logits","=","tf.matmul","(","pooled_output",",","label_embeddings",")","...","``","`"]
docstr: Gets output of the embedding lookup (i.e., input to the transformer).
  
  Returns:
      float Tensor of shape [batch_size, seq_length, hidden_size] corresponding
      to the output of the embedding layer, after summing the word
      embeddings with the positional embeddings and the token type embeddings,
      then performing layer normalization. This is the input to the transformer.
docstr_tok: ["Gets","output","of","the","embedding","lookup","(","i.e.",",","input","to","the","transformer",")",".","Returns",":","float","Tensor","of","shape","[","batch_size",",","seq_length",",","hidden_size","]","corresponding","to","the","output","of","the","embedding","layer",",","after","summing","the","word","embeddings","with","the","positional","embeddings","and","the","token","type","embeddings",",","then","performing","layer","normalization",".","This","is","the","input","to","the","transformer","."]
code: def get_embedding_output(self):
      """Gets output of the embedding lookup (i.e., input to the transformer).
  
      Returns:
          float Tensor of shape [batch_size, seq_length, hidden_size] corresponding
          to the output of the embedding layer, after summing the word
          embeddings with the positional embeddings and the token type embeddings,
          then performing layer normalization. This is the input to the transformer.
      """
      return self.embedding_output
  
imports: import copy
  import json
  import math
  import numpy
  import tensorflow
  import functools
  from transformers.activations_tf import gelu
  from finetune.optimizers.recompute_grads import recompute_grad
  from finetune.nn.auxiliary import embed_position
label_desc: Use image node_id 5 for calling the _BertModel obj's underlying member method code with example usage: obj.get_embedding_output() and returns: self