code: def test_forward_pass_no_head(self):
      model = MarkupLMModel.from_pretrained(
          "microsoft/markuplm-base"
      ).to(torch_device)
  
      processor = self.default_processor
  
      inputs = processor(prepare_html_string(), return_tensors="pt")
      inputs = inputs.to(torch_device)
  
      # forward pass
      with torch.no_grad():
          outputs = model(**inputs)
  
      # verify the last hidden states
      expected_shape = torch.Size([1, 14, 768])
      self.assertEqual(outputs.last_hidden_state.shape, expected_shape)
  
      expected_slice = torch.tensor(
          [
              [0.0267, -0.1289, 0.4930],
              [-0.2376, -0.0342, 0.2381],
              [-0.0329, -0.3785, 0.0263],
          ]
      ).to(torch_device)
  
      self.assertTrue(
          torch.allclose(
              outputs.last_hidden_state[0, :3, :3],
              expected_slice,
              atol=1e-4,
          )
      )
  
imports: import unittest
  from transformers import MarkupLMConfig, is_torch_available
  from transformers.testing_utils import require_torch, slow, torch_device
  from transformers.utils import cached_property
  from ...test_configuration_common import ConfigTester
  from ...test_modeling_common import ModelTesterMixin, ids_tensor
  from transformers import MarkupLMFeatureExtractor, MarkupLMProcessor, MarkupLMTokenizer
label_desc: Use image node_id 2 for calling the MarkupLMModelIntegrationTest obj's underlying member method code with example usage: obj.test_forward_pass_no_head() without return types