code: def test_forward(self):
      model_config = self.config.model_config.cnn_lstm
  
      cnn_lstm = CNNLSTM(model_config)
      cnn_lstm.build()
      cnn_lstm.init_losses()
  
      self.assertTrue(isinstance(cnn_lstm, torch.nn.Module))
  
      test_sample = Sample()
      test_sample.text = torch.randint(1, 79, (10,), dtype=torch.long)
      test_sample.image = torch.randn(3, 320, 480)
      test_sample.targets = torch.randn(32)
  
      test_sample_list = SampleList([test_sample])
      test_sample_list.dataset_type = "train"
      test_sample_list.dataset_name = "clevr"
  
      test_sample_list = test_sample_list.to(get_current_device())
      cnn_lstm = cnn_lstm.to(get_current_device())
  
      output = cnn_lstm(test_sample_list)
  
      scores = output["scores"]
      loss = output["losses"]["train/clevr/logit_bce"]
  
      np.testing.assert_almost_equal(loss.item(), 19.2635, decimal=4)
      self.assertEqual(scores.size(), torch.Size((1, 32)))
  
file_path: mmf/tests/models/test_cnn_lstm.py
imports: import gc
  import os
  import unittest
  import numpy
  import torch
  from mmf.common.registry import registry
  from mmf.common.sample import Sample, SampleList
  from mmf.models.cnn_lstm import CNNLSTM
  from mmf.utils.configuration import Configuration
  from mmf.utils.general import get_current_device, get_mmf_root
  from tests.test_utils import dummy_args
label_desc: Use image node_id 3 for calling the TestModelCNNLSTM obj's underlying member method code with example usage: obj.test_forward() without return types