class_docstr: The EESPNetBackbone implementation based on PaddlePaddle.
  
  The original article refers to
  Sachin Mehta, Mohammad Rastegari, Linda Shapiro, and Hannaneh Hajishirzi. "ESPNetv2: A Light-weight, Power Efficient, and General Purpose Convolutional Neural Network"
  (https://arxiv.org/abs/1811.11431).
  
  Args:
      in_channels (int, optional): Number of input channels. Default: 3.
      drop_prob (float, optional): The probability of dropout. Default: 3.
      scale (float, optional): The scale of channels, only support scale <= 1.5 and scale == 2. Default: 1.0.
class_docstr_tok: ["The","EESPNetBackbone","implementation","based","on","PaddlePaddle",".","The","original","article","refers","to","Sachin","Mehta",",","Mohammad","Rastegari",",","Linda","Shapiro",",","and","Hannaneh","Hajishirzi",".","``","ESPNetv2",":","A","Light-weight",",","Power","Efficient",",","and","General","Purpose","Convolutional","Neural","Network","''","(","https",":","\/\/arxiv.org\/abs\/1811.11431",")",".","Args",":","in_channels","(","int",",","optional",")",":","Number","of","input","channels",".","Default",":","3.","drop_prob","(","float",",","optional",")",":","The","probability","of","dropout",".","Default",":","3.","scale","(","float",",","optional",")",":","The","scale","of","channels",",","only","support","scale","<","=","1.5","and","scale","==","2",".","Default",":","1.0","."]
code: def __init__(self, in_channels=3, drop_prob=0.1, scale=1.0):
      super().__init__()
      reps = [0, 3, 7, 3]
  
      num_level = 4  # 1/2, 1/4, 1/8, 1/16
      kernel_size_limitations = [13, 11, 9, 7]  # kernel size limitation
      branch_list = [4] * len(
          kernel_size_limitations
      )  # branches at different levels
  
      base_channels = 32  # first conv output channels
      channels_config = [base_channels] * num_level
  
      for i in range(num_level):
          if i == 0:
              channels = int(base_channels * scale)
              channels = (
                  math.ceil(channels / branch_list[0]) * branch_list[0]
              )
              channels_config[i] = (
                  base_channels
                  if channels > base_channels
                  else channels
              )
          else:
              channels_config[i] = channels * pow(2, i)
  
      self.level1 = layers.ConvBNPReLU(
          in_channels, channels_config[0], 3, stride=2, bias_attr=False
      )
  
      self.level2 = DownSampler(
          channels_config[0],
          channels_config[1],
          branches=branch_list[0],
          kernel_size_maximum=kernel_size_limitations[0],
          shortcut=True,
      )
  
      self.level3_0 = DownSampler(
          channels_config[1],
          channels_config[2],
          branches=branch_list[1],
          kernel_size_maximum=kernel_size_limitations[1],
          shortcut=True,
      )
      self.level3 = nn.LayerList()
      for i in range(reps[1]):
          self.level3.append(
              EESP(
                  channels_config[2],
                  channels_config[2],
                  stride=1,
                  branches=branch_list[2],
                  kernel_size_maximum=kernel_size_limitations[2],
              )
          )
  
      self.level4_0 = DownSampler(
          channels_config[2],
          channels_config[3],
          branches=branch_list[2],
          kernel_size_maximum=kernel_size_limitations[2],
          shortcut=True,
      )
      self.level4 = nn.LayerList()
      for i in range(reps[2]):
          self.level4.append(
              EESP(
                  channels_config[3],
                  channels_config[3],
                  stride=1,
                  branches=branch_list[3],
                  kernel_size_maximum=kernel_size_limitations[3],
              )
          )
  
      self.out_channels = channels_config
  
      self.init_params()
  
imports: import math
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg import utils
  from paddleseg.cvlibs import manager, param_init
  from paddleseg.models import layers
label_desc: Use image node_id 1 to create a new EESPNetBackbone object from inherited base classes: nn with example: obj = EESPNetBackbone(in_channels, drop_prob, scale)