code: def __init__(
      self, image_attention_model, text_embedding_models, classifier
  ):
      super().__init__()
      self.image_attention_model = image_attention_model
      self.text_embedding_models = text_embedding_models
      self.classifier = classifier
      text_lstm_dim = sum(
          [q.text_out_dim for q in text_embedding_models]
      )
      joint_embedding_out_dim = classifier.input_dim
      image_feat_dim = image_attention_model.image_feat_dim
      self.non_linear_text = ReLUWithWeightNormFC(
          text_lstm_dim, joint_embedding_out_dim
      )
      self.non_linear_image = ReLUWithWeightNormFC(
          image_feat_dim, joint_embedding_out_dim
      )
  
file_path: mmf/mmf/models/top_down_bottom_up.py
imports: import torch
  from mmf.common.registry import registry
  from mmf.models.base_model import BaseModel
  from mmf.modules.layers import ReLUWithWeightNormFC
label_desc: Use image node_id 1 to create a new TopDownBottomUp object from inherited base classes: BaseModel with example: obj = TopDownBottomUp(image_attention_model, text_embedding_models, classifier)