code: def forward(
      self,
      right_encoder_inputs: Tuple[torch.Tensor, ...],
      left_encoder_inputs: Tuple[torch.Tensor, ...],
      *args,
  ) -> List[torch.Tensor]:
      if self.use_shared_encoder:
          if self.right_encoder.output_encoded_layers:
              # if encoded layers are returned, discard them
              right_representation = self.right_encoder(
                  right_encoder_inputs
              )[1]
              left_representation = self.right_encoder(
                  left_encoder_inputs
              )[1]
          else:
              right_representation = self.right_encoder(
                  right_encoder_inputs
              )[0]
              left_representation = self.right_encoder(
                  left_encoder_inputs
              )[0]
      else:
          if self.right_encoder.output_encoded_layers:
              # if encoded layers are returned, discard them
              right_representation = self.right_encoder(
                  right_encoder_inputs
              )[1]
          else:
              right_representation = self.right_encoder(
                  right_encoder_inputs
              )[0]
          if self.left_encoder.output_encoded_layers:
              # if encoded layers are returned, discard them
              left_representation = self.left_encoder(
                  left_encoder_inputs
              )[1]
          else:
              left_representation = self.left_encoder(
                  left_encoder_inputs
              )[0]
      return self.decoder(
          right_representation, left_representation, *args
      )
  
imports: from typing import Dict, List, Optional, Tuple
  import torch
  from pytext.common.constants import Stage, TORCH_VERSION
  from pytext.config import ConfigBase
  from pytext.config.component import create_loss
  from pytext.data.roberta_tensorizer import RoBERTaTensorizer
  from pytext.data.tensorizers import FloatListTensorizer, LabelTensorizer, Tensorizer
  from pytext.loss import BinaryCrossEntropyLoss, MultiLabelSoftMarginLoss
  from pytext.models.decoders.mlp_decoder_two_tower import MLPDecoderTwoTower
  from pytext.models.model import BaseModel
  from pytext.models.module import create_module
  from pytext.models.output_layers import ClassificationOutputLayer
  from pytext.models.output_layers.doc_classification_output_layer import BinaryClassificationOutputLayer, MulticlassOutputLayer, MultiLabelOutputLayer
  from pytext.models.roberta import RoBERTaEncoder, RoBERTaEncoderBase
  from pytext.torchscript.module import ScriptPyTextTwoTowerModuleWithDense, ScriptPyTextTwoTowerModuleWithDenseTower
  from pytext.utils.label import get_label_weights
  from pytext.utils.usage import log_class_usage
label_desc: Use image node_id 6 for calling the TwoTowerClassificationModel obj's underlying member method code with example usage: obj.forward(right_encoder_inputs, left_encoder_inputs) and returns: self