class_docstr: Here we also overwrite some of the tests of test_modeling_common.py, as SAM's vision encoder does not use input_ids, inputs_embeds,
  attention_mask and seq_length.
code: def setUp(self):
      self.model_tester = TFSamModelTester(self)
      self.vision_config_tester = ConfigTester(
          self, config_class=SamVisionConfig, has_text_modality=False
      )
      self.prompt_encoder_config_tester = ConfigTester(
          self,
          config_class=SamPromptEncoderConfig,
          has_text_modality=False,
          num_attention_heads=12,
          num_hidden_layers=2,
      )
      self.mask_decoder_config_tester = ConfigTester(
          self,
          config_class=SamMaskDecoderConfig,
          has_text_modality=False,
      )
  
imports: from __future__ import annotations
  import inspect
  import unittest
  import numpy
  import requests
  from transformers import SamConfig, SamMaskDecoderConfig, SamPromptEncoderConfig, SamVisionConfig
  from transformers.testing_utils import require_tf, slow
  from transformers.utils import is_tf_available, is_vision_available
  from ...test_configuration_common import ConfigTester
  from ...test_modeling_tf_common import TFModelTesterMixin, floats_tensor
  from ...test_pipeline_mixin import PipelineTesterMixin
label_desc: Use image node_id 2 for calling the TFSamModelTest obj's underlying member method code with example usage: obj.setUp() without return types