class_docstr: For aster or crnn
code: def _make_layer(self, planes, blocks, stride):
      downsample = None
      if stride != [1, 1] or self.inplanes != planes:
          downsample = nn.Sequential(
              conv1x1(self.inplanes, planes, stride),
              nn.BatchNorm2D(planes),
          )
  
      layers = []
      layers.append(
          AsterBlock(self.inplanes, planes, stride, downsample)
      )
      self.inplanes = planes
      for _ in range(1, blocks):
          layers.append(AsterBlock(self.inplanes, planes))
      return nn.Sequential(*layers)
  
file_path: PaddleOCR/ppocr/modeling/backbones/rec_resnet_aster.py
imports: import paddle
  import paddle.nn
  import sys
  import math
label_desc: Use image node_id 2 for calling the ResNet_ASTER obj's underlying member method code with example usage: obj._make_layer(planes, blocks, stride) and returns: nn