class_docstr: ESP block, principle: reduce -> split -> transform -> merge
  Args:
      in_channels (int): Number of input channels.
      out_channels (int): Number of output channels.
      residual (bool, optional): Add a residual connection through identity operation. Default: True.
class_docstr_tok: ["ESP","block",",","principle",":","reduce","-",">","split","-",">","transform","-",">","merge","Args",":","in_channels","(","int",")",":","Number","of","input","channels",".","out_channels","(","int",")",":","Number","of","output","channels",".","residual","(","bool",",","optional",")",":","Add","a","residual","connection","through","identity","operation",".","Default",":","True","."]
code: def __init__(self, in_channels, out_channels, residual=True):
      super().__init__()
      branch_channels = out_channels // 5
      remain_channels = out_channels - branch_channels * 4
      self.conv1 = nn.Conv2D(
          in_channels, branch_channels, 1, bias_attr=False
      )
      self.d_conv1 = nn.Conv2D(
          branch_channels,
          remain_channels,
          3,
          padding=1,
          bias_attr=False,
      )
      self.d_conv2 = nn.Conv2D(
          branch_channels,
          branch_channels,
          3,
          padding=2,
          dilation=2,
          bias_attr=False,
      )
      self.d_conv4 = nn.Conv2D(
          branch_channels,
          branch_channels,
          3,
          padding=4,
          dilation=4,
          bias_attr=False,
      )
      self.d_conv8 = nn.Conv2D(
          branch_channels,
          branch_channels,
          3,
          padding=8,
          dilation=8,
          bias_attr=False,
      )
      self.d_conv16 = nn.Conv2D(
          branch_channels,
          branch_channels,
          3,
          padding=16,
          dilation=16,
          bias_attr=False,
      )
  
      self.bn = BNPReLU(out_channels)
      self.residual = residual
  
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 1 to create a new DilatedResidualBlock object from inherited base classes: nn with example: obj = DilatedResidualBlock(in_channels, out_channels, residual)