class_docstr: The ESPNetV2 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:
      num_classes (int): The unique number of target classes.
      in_channels (int, optional): Number of input channels. Default: 3.
      scale (float, optional): The scale of channels, only support scale <= 1.5 and scale == 2. Default: 1.0.
      drop_prob (floa, optional): The probability of dropout. Default: 0.1.
      pretrained (str, optional): The path or url of pretrained model. Default: None.
class_docstr_tok: ["The","ESPNetV2","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",":","num_classes","(","int",")",":","The","unique","number","of","target","classes",".","in_channels","(","int",",","optional",")",":","Number","of","input","channels",".","Default",":","3.","scale","(","float",",","optional",")",":","The","scale","of","channels",",","only","support","scale","<","=","1.5","and","scale","==","2",".","Default",":","1.0.","drop_prob","(","floa",",","optional",")",":","The","probability","of","dropout",".","Default",":","0.1.","pretrained","(","str",",","optional",")",":","The","path","or","url","of","pretrained","model",".","Default",":","None","."]
code: def __init__(
      self,
      num_classes,
      in_channels=3,
      scale=1.0,
      drop_prob=0.1,
      pretrained=None,
  ):
      super().__init__()
      self.backbone = EESPNetBackbone(in_channels, drop_prob, scale)
      self.in_channels = self.backbone.out_channels
      self.proj_l4_c = layers.ConvBNPReLU(
          self.in_channels[3],
          self.in_channels[2],
          1,
          stride=1,
          bias_attr=False,
      )
      psp_size = 2 * self.in_channels[2]
      self.eesp_psp = nn.Sequential(
          EESP(
              psp_size,
              psp_size // 2,
              stride=1,
              branches=4,
              kernel_size_maximum=7,
          ),
          PSPModule(psp_size // 2, psp_size // 2),
      )
  
      self.project_l3 = nn.Sequential(
          nn.Dropout2D(p=drop_prob),
          nn.Conv2D(psp_size // 2, num_classes, 1, 1, bias_attr=False),
      )
      self.act_l3 = BNPReLU(num_classes)
      self.project_l2 = layers.ConvBNPReLU(
          self.in_channels[1] + num_classes,
          num_classes,
          1,
          stride=1,
          bias_attr=False,
      )
      self.project_l1 = nn.Sequential(
          nn.Dropout2D(p=drop_prob),
          nn.Conv2D(
              self.in_channels[0] + num_classes,
              num_classes,
              1,
              1,
              bias_attr=False,
          ),
      )
  
      self.pretrained = pretrained
  
      self.init_weight()
  
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 ESPNetV2 object from inherited base classes: nn with example: obj = ESPNetV2(num_classes, in_channels, scale, drop_prob, pretrained)