code: def __init__(
      self,
      image_feat_dim,
      txt_rnn_embeding_dim,
      hidden_size,
      dropout=0.2,
  ):
      super().__init__()
      self.att1 = ProjectAttention(
          image_feat_dim, txt_rnn_embeding_dim, hidden_size, dropout
      )
      self.att2 = ProjectAttention(
          image_feat_dim, txt_rnn_embeding_dim, hidden_size, dropout
      )
      self.image_feat_dim = image_feat_dim
      self.txt_embeding_dim = txt_rnn_embeding_dim
  
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 DoubleProjectAttention object from inherited base classes: nn with example: obj = DoubleProjectAttention(image_feat_dim, txt_rnn_embeding_dim, hidden_size, dropout)