class_docstr: Test MMT model
code: def test_mmt_vid(self):
      vid_bert_params = {
          "vocab_size_or_config_json_file": 10,
          "hidden_size": 512,
          "num_hidden_layers": 9,
          "intermediate_size": 3072,
          "hidden_act": "gelu",
          "hidden_dropout_prob": 0.2,
          "attention_probs_dropout_prob": 0.2,
          "max_position_embeddings": 32,
          "type_vocab_size": 19,
          "initializer_range": 0.02,
          "layer_norm_eps": 1e-12,
          "num_attention_heads": 8,
      }
  
      class Struct:
          def __init__(self, **entries):
              self.__dict__.update(entries)
  
      config = Struct(**vid_bert_params)
      expert_dims = {
          "CLIP": {"dim": 512, "idx": 2, "max_tok": 30},
          "tf_vggish": {"dim": 128, "idx": 3, "max_tok": 30},
      }
      features = {
          "CLIP": torch.rand(8, 30, 512),
          "tf_vggish": torch.rand(8, 30, 128),
      }
      features_t = {
          "CLIP": torch.rand(8, 30),
          "tf_vggish": torch.rand(8, 30),
      }
      features_ind = {
          "CLIP": torch.randint(low=0, high=2, size=(8, 30)),
          "tf_vggish": torch.randint(low=0, high=2, size=(8, 30)),
      }
  
      mmtvid_model = MMTVID(
          expert_dims=expert_dims,
          same_dim=512,
          hidden_size=512,
          vid_bert_config=config,
      )
      output = mmtvid_model(
          features=features,
          features_t=features_t,
          features_ind=features_ind,
          features_maxp=None,
      )
      self.assertTrue(output.shape == (8, 1024))
  
imports: import unittest
  import torch
  from torch import nn
  from towhee.models.mdmmt.mmt import MMTVID, MMTTXT
label_desc: Use image node_id 1 for calling the TestMMT obj's underlying member method code with example usage: obj.test_mmt_vid() without return types