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: Add teacher and student prefixes to model parameter names.
docstr_tok: ["Add","teacher","and","student","prefixes","to","model","parameter","names","."]
code: def _load_from_state_dict(
      self,
      state_dict: dict,
      prefix: str,
      local_metadata: dict,
      strict: bool,
      missing_keys: Union[List[str], str],
      unexpected_keys: Union[List[str], str],
      error_msgs: Union[List[str], str],
  ) -> None:
      """Add teacher and student prefixes to model parameter names."""
      if not any(
          [
              "student" in key or "teacher" in key
              for key in state_dict.keys()
          ]
      ):
          keys = list(state_dict.keys())
          state_dict.update(
              {"teacher." + k: state_dict[k] for k in keys}
          )
          state_dict.update(
              {"student." + k: state_dict[k] for k in keys}
          )
          for k in keys:
              state_dict.pop(k)
      return super()._load_from_state_dict(
          state_dict,
          prefix,
          local_metadata,
          strict,
          missing_keys,
          unexpected_keys,
          error_msgs,
      )
  
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 11 for calling the SemiBaseDetector obj's underlying member method code with example usage: obj._load_from_state_dict(state_dict, prefix, local_metadata, strict, missing_keys, unexpected_keys, error_msgs) and returns: super