class_docstr: Regular bottlenecks are the main building block of ENet.
  Main branch:
  1. Shortcut connection.
  Extension branch:
  1. 1x1 convolution which decreases the number of channels by
      ``internal_ratio``, also called a projection;
  2. regular, dilated or asymmetric convolution;
  3. 1x1 convolution which increases the number of channels back to
      ``channels``, also called an expansion;
  4. dropout as a regularizer.
  
  Args:
      channels (int): the number of input and output channels.
      internal_ratio (int, optional): a scale factor applied to
          ``channels`` used to compute the number of
          channels after the projection. eg. given ``channels`` equal to 128 and
          internal_ratio equal to 2 the number of channels after the projection
          is 64. Default: 4.
      kernel_size (int, optional): the kernel size of the filters used in
          the convolution layer described above in item 2 of the extension
          branch. Default: 3.
      padding (int, optional): zero-padding added to both sides of the
          input. Default: 0.
      dilation (int, optional): spacing between kernel elements for the
          convolution described in item 2 of the extension branch. Default: 1.
          asymmetric (bool, optional): flags if the convolution described in
          item 2 of the extension branch is asymmetric or not. Default: False.
      dropout_prob (float, optional): probability of an element to be
          zeroed. Default: 0 (no dropout).
      bias (bool, optional): Adds a learnable bias to the output if
          ``True``. Default: False.
      relu (bool, optional): When ``True`` ReLU is used as the activation
          function; otherwise, PReLU is used. Default: True.
class_docstr_tok: ["Regular","bottlenecks","are","the","main","building","block","of","ENet",".","Main","branch",":","1",".","Shortcut","connection",".","Extension","branch",":","1",".","1x1","convolution","which","decreases","the","number","of","channels","by","``","internal_ratio","``",",","also","called","a","projection",";","2.","regular",",","dilated","or","asymmetric","convolution",";","3",".","1x1","convolution","which","increases","the","number","of","channels","back","to","``","channels","``",",","also","called","an","expansion",";","4.","dropout","as","a","regularizer",".","Args",":","channels","(","int",")",":","the","number","of","input","and","output","channels",".","internal_ratio","(","int",",","optional",")",":","a","scale","factor","applied","to","``","channels","``","used","to","compute","the","number","of","channels","after","the","projection",".","eg",".","given","``","channels","``","equal","to","128","and","internal_ratio","equal","to","2","the","number","of","channels","after","the","projection","is","64",".","Default",":","4.","kernel_size","(","int",",","optional",")",":","the","kernel","size","of","the","filters","used","in","the","convolution","layer","described","above","in","item","2","of","the","extension","branch",".","Default",":","3.","padding","(","int",",","optional",")",":","zero-padding","added","to","both","sides","of","the","input",".","Default",":","0.","dilation","(","int",",","optional",")",":","spacing","between","kernel","elements","for","the","convolution","described","in","item","2","of","the","extension","branch",".","Default",":","1.","asymmetric","(","bool",",","optional",")",":","flags","if","the","convolution","described","in","item","2","of","the","extension","branch","is","asymmetric","or","not",".","Default",":","False",".","dropout_prob","(","float",",","optional",")",":","probability","of","an","element","to","be","zeroed",".","Default",":","0","(","no","dropout",")",".","bias","(","bool",",","optional",")",":","Adds","a","learnable","bias","to","the","output","if","``","True","``",".","Default",":","False",".","relu","(","bool",",","optional",")",":","When","``","True","``","ReLU","is","used","as","the","activation","function",";","otherwise",",","PReLU","is","used",".","Default",":","True","."]
code: def forward(self, x):
      main = x
  
      ext = self.ext_conv1(x)
      ext = self.ext_conv2(ext)
      ext = self.ext_conv3(ext)
      ext = self.ext_regul(ext)
  
      out = main + ext
  
      return self.out_activation(out)
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg import utils
  from paddleseg.models import layers
  from paddleseg.cvlibs import manager, param_init
label_desc: Use image node_id 2 for calling the RegularBottleneck obj's underlying member method code with example usage: obj.forward(x) and returns: self