class_docstr: Base class for semi-supervised detectors.
  
  Semi-supervised detectors typically consisting of a teacher model
  updated by exponential moving average and a student model updated
  by gradient descent.
  
  Args:
      detector (:obj:`ConfigDict` or dict): The detector config.
      semi_train_cfg (:obj:`ConfigDict` or dict, optional):
          The semi-supervised training config.
      semi_test_cfg (:obj:`ConfigDict` or dict, optional):
          The semi-supervised testing config.
      data_preprocessor (:obj:`ConfigDict` or dict, optional): Config of
          :class:`DetDataPreprocessor` to process the input data.
          Defaults to None.
      init_cfg (:obj:`ConfigDict` or list[:obj:`ConfigDict`] or dict or
          list[dict], optional): Initialization config dict.
          Defaults to None.
docstr: Get pseudo instances from teacher model.
docstr_tok: ["Get","pseudo","instances","from","teacher","model","."]
code: def get_pseudo_instances(
      self, batch_inputs: Tensor, batch_data_samples: SampleList
  ) -> Tuple[SampleList, Optional[dict]]:
      """Get pseudo instances from teacher model."""
      self.teacher.eval()
      results_list = self.teacher.predict(
          batch_inputs, batch_data_samples, rescale=False
      )
      batch_info = {}
      for data_samples, results in zip(
          batch_data_samples, results_list
      ):
          data_samples.gt_instances = results.pred_instances
          data_samples.gt_instances.bboxes = bbox_project(
              data_samples.gt_instances.bboxes,
              torch.from_numpy(data_samples.homography_matrix)
              .inverse()
              .to(self.data_preprocessor.device),
              data_samples.ori_shape,
          )
      return batch_data_samples, batch_info
  
imports: import copy
  from typing import Dict, List, Optional, Tuple, Union
  import torch
  import torch.nn
  from torch import Tensor
  from mmdet.models.utils import filter_gt_instances, rename_loss_dict, reweight_loss_dict
  from mmdet.registry import MODELS
  from mmdet.structures import SampleList
  from mmdet.structures.bbox import bbox_project
  from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
  from .base import BaseDetector
label_desc: Use image node_id 6 for calling the SemiBaseDetector obj's underlying member method code with example usage: obj.get_pseudo_instances(batch_inputs, batch_data_samples) and returns: batch_data_samples,  batch_info