class_docstr: The STDCNet implementation based on PaddlePaddle.
  
  The original article refers to Meituan
  Fan, Mingyuan, et al. "Rethinking BiSeNet For Real-time Semantic Segmentation."
  (https://arxiv.org/abs/2104.13188)
  
  Args:
      base(int, optional): base channels. Default: 64.
      layers(list, optional): layers numbers list. It determines STDC block numbers of STDCNet's stage3. Defualt: [4, 5, 3].
      block_num(int,optional): block_num of features block. Default: 4.
      type(str,optional): feature fusion method "cat"/"add". Default: "cat".
      relative_lr(float,optional): parameters here receive a different learning rate when updating. The effective 
          learning rate is the prodcut of relative_lr and the global learning rate. Default: 1.0. 
      in_channels (int, optional): The channels of input image. Default: 3.
      pretrained(str, optional): the path of pretrained model.
class_docstr_tok: ["The","STDCNet","implementation","based","on","PaddlePaddle",".","The","original","article","refers","to","Meituan","Fan",",","Mingyuan",",","et","al",".","``","Rethinking","BiSeNet","For","Real-time","Semantic","Segmentation",".","''","(","https",":","\/\/arxiv.org\/abs\/2104.13188",")","Args",":","base","(","int",",","optional",")",":","base","channels",".","Default",":","64.","layers","(","list",",","optional",")",":","layers","numbers","list",".","It","determines","STDC","block","numbers","of","STDCNet","'s","stage3\u0004\u0005",".","Defualt",":","[","4",",","5",",","3","]",".","block_num","(","int",",","optional",")",":","block_num","of","features","block",".","Default",":","4.","type","(","str",",","optional",")",":","feature","fusion","method","``","cat","''","\/","''","add","''",".","Default",":","``","cat","''",".","relative_lr","(","float",",","optional",")",":","parameters","here","receive","a","different","learning","rate","when","updating",".","The","effective","learning","rate","is","the","prodcut","of","relative_lr","and","the","global","learning","rate",".","Default",":","1.0.","in_channels","(","int",",","optional",")",":","The","channels","of","input","image",".","Default",":","3.","pretrained","(","str",",","optional",")",":","the","path","of","pretrained","model","."]
code: def _make_layers(
      self, in_channels, base, layers, block_num, block, relative_lr
  ):
      features = []
      features += [
          ConvBNRelu(in_channels, base // 2, 3, 2, relative_lr)
      ]
      features += [ConvBNRelu(base // 2, base, 3, 2, relative_lr)]
  
      for i, layer in enumerate(layers):
          for j in range(layer):
              if i == 0 and j == 0:
                  features.append(
                      block(base, base * 4, block_num, 2, relative_lr)
                  )
              elif j == 0:
                  features.append(
                      block(
                          base * int(math.pow(2, i + 1)),
                          base * int(math.pow(2, i + 2)),
                          block_num,
                          2,
                          relative_lr,
                      )
                  )
              else:
                  features.append(
                      block(
                          base * int(math.pow(2, i + 2)),
                          base * int(math.pow(2, i + 2)),
                          block_num,
                          1,
                          relative_lr,
                      )
                  )
  
      return nn.Sequential(*features)
  
imports: import math
  import paddle
  import paddle.nn
  from paddleseg.utils import utils
  from paddleseg.cvlibs import manager, param_init
  from paddleseg.models.layers.layer_libs import SyncBatchNorm
label_desc: Use image node_id 3 for calling the STDCNet obj's underlying member method code with example usage: obj._make_layers(in_channels, base, layers, block_num, block, relative_lr) and returns: nn