code: def test_retain_grad_entity_hidden_states(self):
      (
          config,
          inputs_dict,
      ) = self.model_tester.prepare_config_and_inputs_for_common()
      config.output_hidden_states = True
      config.output_attentions = True
  
      # no need to test all models as different heads yield the same functionality
      model_class = self.all_model_classes[0]
      model = model_class(config)
      model.to(torch_device)
  
      inputs = self._prepare_for_class(inputs_dict, model_class)
  
      outputs = model(**inputs)
  
      output = outputs[0]
  
      entity_hidden_states = outputs.entity_hidden_states[0]
      entity_hidden_states.retain_grad()
  
      output.flatten()[0].backward(retain_graph=True)
  
      self.assertIsNotNone(entity_hidden_states.grad)
  
imports: import unittest
  from transformers import LukeConfig, is_torch_available
  from transformers.testing_utils import require_torch, slow, torch_device
  from ...test_configuration_common import ConfigTester
  from ...test_modeling_common import ModelTesterMixin, ids_tensor, random_attention_mask
  from ...test_pipeline_mixin import PipelineTesterMixin
label_desc: Use image node_id 18 for calling the LukeModelTest obj's underlying member method code with example usage: obj.test_retain_grad_entity_hidden_states() without return types