class_docstr: Here we also overwrite some of the tests of test_modeling_common.py, as VideoMAE does not use input_ids, inputs_embeds,
  attention_mask and seq_length.
code: def test_attention_outputs(self):
      if not self.has_attentions:
          pass
  
      else:
          (
              config,
              inputs_dict,
          ) = self.model_tester.prepare_config_and_inputs_for_common()
          config.return_dict = True
  
          for model_class in self.all_model_classes:
              num_visible_patches = (
                  self.model_tester.seq_length
                  - self.model_tester.num_masks
              )
              seq_len = (
                  num_visible_patches
                  if model_class == VideoMAEForPreTraining
                  else self.model_tester.seq_length
              )
  
              inputs_dict["output_attentions"] = True
              inputs_dict["output_hidden_states"] = False
              config.return_dict = True
              model = model_class(config)
              model.to(torch_device)
              model.eval()
              with torch.no_grad():
                  outputs = model(
                      **self._prepare_for_class(
                          inputs_dict, model_class
                      )
                  )
              attentions = outputs.attentions
              self.assertEqual(
                  len(attentions), self.model_tester.num_hidden_layers
              )
  
              # check that output_attentions also work using config
              del inputs_dict["output_attentions"]
              config.output_attentions = True
              model = model_class(config)
              model.to(torch_device)
              model.eval()
              with torch.no_grad():
                  outputs = model(
                      **self._prepare_for_class(
                          inputs_dict, model_class
                      )
                  )
              attentions = outputs.attentions
              self.assertEqual(
                  len(attentions), self.model_tester.num_hidden_layers
              )
  
              self.assertListEqual(
                  list(attentions[0].shape[-3:]),
                  [
                      self.model_tester.num_attention_heads,
                      seq_len,
                      seq_len,
                  ],
              )
              out_len = len(outputs)
  
              # Check attention is always last and order is fine
              inputs_dict["output_attentions"] = True
              inputs_dict["output_hidden_states"] = True
              model = model_class(config)
              model.to(torch_device)
              model.eval()
              with torch.no_grad():
                  outputs = model(
                      **self._prepare_for_class(
                          inputs_dict, model_class
                      )
                  )
  
              self.assertEqual(out_len + 1, len(outputs))
  
              self_attentions = outputs.attentions
  
              self.assertEqual(
                  len(self_attentions),
                  self.model_tester.num_hidden_layers,
              )
              self.assertListEqual(
                  list(self_attentions[0].shape[-3:]),
                  [
                      self.model_tester.num_attention_heads,
                      seq_len,
                      seq_len,
                  ],
              )
  
imports: import copy
  import inspect
  import unittest
  import numpy
  from huggingface_hub import hf_hub_download
  from transformers import VideoMAEConfig
  from transformers.models.auto import get_values
  from transformers.testing_utils import require_torch, require_vision, slow, torch_device
  from transformers.utils import cached_property, is_torch_available, is_vision_available
  from ...test_configuration_common import ConfigTester
  from ...test_modeling_common import ModelTesterMixin, floats_tensor, ids_tensor
label_desc: Use image node_id 10 for calling the VideoMAEModelTest obj's underlying member method code with example usage: obj.test_attention_outputs() without return types