code: def forward(self, image_feat, question_embedding):
      att1 = self.att1.compute_raw_att(image_feat, question_embedding)
      att2 = self.att2.compute_raw_att(image_feat, question_embedding)
      raw_attn_weights = att1 + att2
      # softmax across locations
      attention_weights = nn.functional.softmax(raw_attn_weights, dim=1)
      attention_weights = attention_weights.expand_as(image_feat)
      return attention_weights
  
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 2 for calling the DoubleProjectAttention obj's underlying member method code with example usage: obj.forward(image_feat, question_embedding) and returns: attention_weights