class_docstr: Base class for two-stage detectors.
  
  Two-stage detectors typically consisting of a region proposal network and a
  task-specific regression head.
class_docstr_tok: ["Base","class","for","two-stage","detectors",".","Two-stage","detectors","typically","consisting","of","a","region","proposal","network","and","a","task-specific","regression","head","."]
docstr: Extract features.
  
  Args:
      batch_inputs (Tensor): Image tensor with shape (N, C, H ,W).
  
  Returns:
      tuple[Tensor]: Multi-level features that may have
      different resolutions.
docstr_tok: ["Extract","features",".","Args",":","batch_inputs","(","Tensor",")",":","Image","tensor","with","shape","(","N",",","C",",","H",",","W",")",".","Returns",":","tuple","[","Tensor","]",":","Multi-level","features","that","may","have","different","resolutions","."]
code: def extract_feat(self, batch_inputs: Tensor) -> Tuple[Tensor]:
      """Extract features.
  
      Args:
          batch_inputs (Tensor): Image tensor with shape (N, C, H ,W).
  
      Returns:
          tuple[Tensor]: Multi-level features that may have
          different resolutions.
      """
      x = self.backbone(batch_inputs)
      if self.with_neck:
          x = self.neck(x)
      return x
  
file_path: mmdetection/mmdet/models/detectors/two_stage.py
imports: import copy
  import warnings
  from typing import List, Tuple, Union
  import torch
  from torch import Tensor
  from mmdet.registry import MODELS
  from mmdet.structures import SampleList
  from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
  from .base import BaseDetector
label_desc: Use image node_id 5 for calling the TwoStageDetector obj's underlying member method code with example usage: obj.extract_feat(batch_inputs) and returns: x