code: def forward(self, query, key, value, mask):
      batch_size, query_len, embed_dim = query.shape
      batch_size, key_len, embed_dim = key.shape
      mask = 1 - mask.unsqueeze(1).expand(
          batch_size, query_len, key_len
      )
      mask = mask == 1
      sources = None
  
      sources = self.encoder_layers[0](query, key, value, mask)
      return sources
  
imports: from collections import OrderedDict
  import os
  import numpy
  import torch
  from torch import nn
  from gluoncv.torch.utils.coot_utils import truncated_normal_fill
label_desc: Use image node_id 2 for calling the TransformerEncoder obj's underlying member method code with example usage: obj.forward(query, key, value, mask) and returns: sources