class_docstr: Implement ResNet backbone for text recognition, modified from `ResNet.
  
  <https://arxiv.org/pdf/1512.03385.pdf>`_ and
  `<https://github.com/FangShancheng/ABINet>`_
  
  Args:
      in_channels (int): Number of channels of input image tensor.
      stem_channels (int): Number of stem channels.
      base_channels (int): Number of base channels.
      arch_settings  (list[int]): List of BasicBlock number for each stage.
      strides (Sequence[int]): Strides of the first block of each stage.
      out_indices (None | Sequence[int]): Indices of output stages. If not
          specified, only the last stage will be returned.
      last_stage_pool (bool): If True, add `MaxPool2d` layer to last stage.
code: def _make_layer(self, block, inplanes, planes, blocks, stride=1):
      layers = []
      downsample = None
      if stride != 1 or inplanes != planes:
          downsample = nn.Sequential(
              nn.Conv2d(inplanes, planes, 1, stride, bias=False),
              nn.BatchNorm2d(planes),
          )
      layers.append(
          block(
              inplanes,
              planes,
              use_conv1x1=True,
              stride=stride,
              downsample=downsample,
          )
      )
      inplanes = planes
      for _ in range(1, blocks):
          layers.append(block(inplanes, planes, use_conv1x1=True))
  
      return Sequential(*layers)
  
file_path: mmocr/mmocr/models/textrecog/backbones/resnet_abi.py
imports: import torch.nn
  from mmengine.model import BaseModule, Sequential
  import mmocr.utils
  from mmocr.models.textrecog.layers import BasicBlock
  from mmocr.registry import MODELS
label_desc: Use image node_id 2 for calling the ResNetABI obj's underlying member method code with example usage: obj._make_layer(block, inplanes, planes, blocks, stride) and returns: Sequential