code: def __call__(self, input_ids, token_type_ids):
      input_shape = input_ids.shape
      seq_length = input_shape[1]
  
      position_ids = (
          Tensor.arange(seq_length, requires_grad=False)
          .unsqueeze(0)
          .expand(*input_shape)
      )
      words_embeddings = self.word_embeddings(input_ids)
      position_embeddings = self.position_embeddings(position_ids)
      token_type_embeddings = self.token_type_embeddings(token_type_ids)
  
      embeddings = (
          words_embeddings + position_embeddings + token_type_embeddings
      )
      embeddings = self.LayerNorm(embeddings)
      embeddings = embeddings.dropout(self.dropout)
      return embeddings
  
imports: from tinygrad.tensor import Tensor
  from tinygrad.nn import Linear, LayerNorm, Embedding
  from tinygrad.helpers import fetch, get_child
  from pathlib import Path
label_desc: Use image node_id 2 for calling the BertEmbeddings obj's underlying member method code with example usage: obj.__call__(input_ids, token_type_ids) and returns: embeddings