class_docstr: Torchscriptable version of `BertLayer` from Huggingface transformers v2.3.0
  https://github.com/huggingface/transformers/blob/v2.3.0/transformers/modeling_bert.py # noqa
  
  Modifies the `forward` function as well as uses scriptable `BertAttentionJit`
  
  Changes to `forward` function::
      Typed inputs and modifies the output to be a List[Tensor]
class_docstr_tok: ["Torchscriptable","version","of","`","BertLayer","`","from","Huggingface","transformers","v2.3.0","https",":","\/\/github.com\/huggingface\/transformers\/blob\/v2.3.0\/transformers\/modeling_bert.py","#","noqa","Modifies","the","`","forward","`","function","as","well","as","uses","scriptable","`","BertAttentionJit","`","Changes","to","`","forward","`","function",":",":","Typed","inputs","and","modifies","the","output","to","be","a","List","[","Tensor","]"]
code: def __init__(self, config):
      super().__init__(config)
      self.attention = BertAttentionJit(config)
      self.is_decoder = config.is_decoder
      if self.is_decoder:
          self.crossattention = BertAttentionJit(config)
  
imports: import math
  from typing import List, Optional, Tuple
  import torch
  from mmf.utils.patch import restore_saved_modules, safecopy_modules
  from torch import nn, Tensor
label_desc: Use image node_id 1 to create a new BertLayerJit object from inherited base classes: BertLayer with example: obj = BertLayerJit(config)