class_docstr: Bbox head used in Double-Head R-CNN
  
  .. code-block:: none
  
                                        /-> cls
                    /-> shared convs ->
                                        \-> reg
      roi features
                                        /-> cls
                    \-> shared fc    ->
                                        \-> reg
class_docstr_tok: ["Bbox","head","used","in","Double-Head","R-CNN","..","code-block",":",":","none","\/-",">","cls","\/-",">","shared","convs","-",">","\\-",">","reg","roi","features","\/-",">","cls","\\-",">","shared","fc","-",">","\\-",">","reg"]
docstr: Add the fc branch which consists of a sequential of fc layers.
docstr_tok: ["Add","the","fc","branch","which","consists","of","a","sequential","of","fc","layers","."]
code: def _add_fc_branch(self) -> None:
      """Add the fc branch which consists of a sequential of fc layers."""
      branch_fcs = ModuleList()
      for i in range(self.num_fcs):
          fc_in_channels = (
              self.in_channels * self.roi_feat_area
              if i == 0
              else self.fc_out_channels
          )
          branch_fcs.append(
              nn.Linear(fc_in_channels, self.fc_out_channels)
          )
      return branch_fcs
  
file_path: mmdetection/mmdet/models/roi_heads/bbox_heads/double_bbox_head.py
imports: from typing import Tuple
  import torch.nn
  from mmcv.cnn import ConvModule
  from mmengine.model import BaseModule, ModuleList
  from torch import Tensor
  from mmdet.models.backbones.resnet import Bottleneck
  from mmdet.registry import MODELS
  from mmdet.utils import ConfigType, MultiConfig, OptConfigType, OptMultiConfig
  from .bbox_head import BBoxHead
label_desc: Use image node_id 3 for calling the DoubleConvFCBBoxHead obj's underlying member method code with example usage: obj._add_fc_branch() and returns: branch_fcs