class_docstr: Gated Embedding Unit
  Args:
      input_dimension (int): dimension of input
      output_dimension (int): dimension of output
      use_bn (bool): use batch normalization
      normalize (bool): normalization
code: def __init__(
      self, input_dimension, output_dimension, use_bn, normalize
  ):
      super().__init__()
      self.fc = nn.Linear(input_dimension, output_dimension)
      self.cg = ContextGating(output_dimension, add_batch_norm=use_bn)
      self.normalize = normalize
  
imports: import os
  import torch
  import torch.nn.functional
  from typing import Any, List, Dict
  from collections import OrderedDict
  from torch import nn
  from towhee.models.mdmmt.bert_mmt import BertMMT
label_desc: Use image node_id 1 to create a new GatedEmbeddingUnit object from inherited base classes: nn with example: obj = GatedEmbeddingUnit(input_dimension, output_dimension, use_bn, normalize)