code: def test_quasi_dense_track_head_predict(self):
      feats = []
      for i in range(
          len(self.track_head.roi_extractor.featmap_strides)
      ):
          feats.append(
              torch.rand(
                  1, 256, 256 // (2 ** (i + 2)), 256 // (2 ** (i + 2))
              ).to(device="cpu")
          )
      feats = tuple(feats)
      track_feat = self.track_head.predict(
          feats, [torch.Tensor([[10, 10, 20, 20]])]
      )
      assert track_feat.size() == (1, 256)
  
file_path: mmdetection/tests/test_models/test_tracking_heads/test_quasi_dense_track_head.py
imports: from unittest import TestCase
  import torch
  from mmengine import init_default_scope
  from mmengine.config import Config
  from mmengine.structures import InstanceData
  from mmdet.registry import MODELS
  from mmdet.testing import demo_track_inputs, random_boxes
label_desc: Use image node_id 3 for calling the TestQuasiDenseTrackHead obj's underlying member method code with example usage: obj.test_quasi_dense_track_head_predict() without return types