class_docstr: The ESPNet-C implementation based on PaddlePaddle.
  Args:
      num_classes (int): The unique number of target classes.
      in_channels (int, optional): Number of input channels. Default: 3.
      level2_depth (int, optional): Depth of DilatedResidualBlock. Default: 5.
      level3_depth (int, optional): Depth of DilatedResidualBlock. Default: 3.
class_docstr_tok: ["The","ESPNet-C","implementation","based","on","PaddlePaddle",".","Args",":","num_classes","(","int",")",":","The","unique","number","of","target","classes",".","in_channels","(","int",",","optional",")",":","Number","of","input","channels",".","Default",":","3.","level2_depth","(","int",",","optional",")",":","Depth","of","DilatedResidualBlock",".","Default",":","5.","level3_depth","(","int",",","optional",")",":","Depth","of","DilatedResidualBlock",".","Default",":","3","."]
code: def forward(self, x):
      f1 = self.level1(x)
      down2 = F.adaptive_avg_pool2d(x, output_size=f1.shape[2:])
      feat1 = paddle.concat([f1, down2], axis=1)
      feat1 = self.br1(feat1)
      p1 = self.proj1(feat1)
  
      f2_res = self.level2_0(feat1)
      f2 = self.level2(f2_res)
      down4 = F.adaptive_avg_pool2d(x, output_size=f2.shape[2:])
      feat2 = paddle.concat([f2, f2_res, down4], axis=1)
      feat2 = self.br2(feat2)
      p2 = self.proj2(feat2)
  
      f3_res = self.level3_0(feat2)
      f3 = self.level3(f3_res)
      feat3 = paddle.concat([f3, f3_res], axis=1)
      feat3 = self.br3(feat3)
      p3 = self.proj3(feat3)
  
      return p1, p2, p3
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.models import layers
  from paddleseg.cvlibs import manager
  from paddleseg.utils import utils
label_desc: Use image node_id 2 for calling the ESPNetEncoder obj's underlying member method code with example usage: obj.forward(x) and returns: p1,  p2,  p3