class_docstr: Initialize the DeepSpeed Transformer Layer.
  
  Static variable:
      layer_id: The layer-index counter starting from 0 and incrementing by 1 every time a layer object is instantiated,
      e.g. if a model has 24 transformer layers, layer_id goes from 0 to 23.
  Arguments:
      config: An object of DeepSpeedTransformerConfig
  
      initial_weights: Optional: Only used for unit test
  
      initial_biases: Optional: Only used for unit test
code: def forward(
      self,
      hidden_states,
      attention_mask=None,
      head_mask=None,
      layer_head_mask=None,
      encoder_hidden_states=None,
      encoder_attention_mask=None,
      past_key_value=None,
      output_attentions=False,
      grads=None,
  ):
      self.config.is_grad_enabled = torch.is_grad_enabled()
      return DeepSpeedTransformerFunction.apply(
          hidden_states,
          attention_mask,
          self,
          grads,
          self.config.layer_id,
          self.attn_qkvw,
          self.attn_qkvb,
          self.attn_ow,
          self.attn_ob,
          self.attn_nw,
          self.attn_nb,
          self.inter_w,
          self.inter_b,
          self.output_w,
          self.output_b,
          self.norm_w,
          self.norm_b,
          self.config,
      )
  
imports: import json
  import math
  import torch
  from torch import nn
  from torch.autograd import Function
  from ..op_builder import TransformerBuilder, StochasticTransformerBuilder
label_desc: Use image node_id 3 for calling the DeepSpeedTransformerLayer obj's underlying member method code with example usage: obj.forward(hidden_states, attention_mask, head_mask, layer_head_mask, encoder_hidden_states, encoder_attention_mask, past_key_value, output_attentions, grads) and returns: DeepSpeedTransformerFunction