code: def test_query_dependent_localization_head_mr(
      self,
      video_tokens,
      txt_emb,
      feature_pyramid_config,
      weight_sharing,
      expected_output_shape,
      expected_keys,
  ):
      rng = random.PRNGKey(0)
      output, params = heads.QueryDependentLocalizationHead(
          num_conv_layers=3,
          kernel_size=3,
          num_classes=-1,
          feature_pyramid_config=feature_pyramid_config,
          weight_sharing=weight_sharing,
      ).init_with_output(
          rng, video_tokens, txt_emb, "moment_retrieval", train=False
      )
      self.assertTupleEqual(output.shape, expected_output_shape)
      self.assertSetEqual(set(params["params"].keys()), expected_keys)
  
file_path: scenic/scenic/projects/unloc/heads_test.py
imports: from absl.testing import parameterized
  from jax import random
  import ml_collections
  import numpy
  from scenic.projects.unloc import heads
  import tensorflow
label_desc: Use image node_id 4 for calling the HeadsTest obj's underlying member method code with example usage: obj.test_query_dependent_localization_head_mr(video_tokens, txt_emb, feature_pyramid_config, weight_sharing, expected_output_shape, expected_keys) without return types