code: def __init__(self, image_feat_dim, txt_rnn_embeding_dim, hidden_size):
      super().__init__()
      self.image_feat_dim = image_feat_dim
      self.txt_embeding_dim = txt_rnn_embeding_dim
      self.fa = GatedTanh(
          image_feat_dim + txt_rnn_embeding_dim, hidden_size
      )
      self.lc = nn.Linear(hidden_size, 1)
  
imports: import math
  from typing import Optional, Tuple, Type
  import torch
  from mmf.modules.layers import GatedTanh, ModalCombineLayer, TransformLayer
  from torch import nn
label_desc: Use image node_id 1 to create a new ConcatenationAttention object from inherited base classes: nn with example: obj = ConcatenationAttention(image_feat_dim, txt_rnn_embeding_dim, hidden_size)