class_docstr: The upsampling bottlenecks upsample the feature map resolution using max
  pooling indices stored from the corresponding downsampling bottleneck.
  
  Main branch:
  1. 1x1 convolution with stride 1 that decreases the number of channels by
  ``internal_ratio``, also called a projection;
  2. max unpool layer using the max pool indices from the corresponding
  downsampling max pool layer.
  
  Extension branch:
  1. 1x1 convolution with stride 1 that decreases the number of channels by
  ``internal_ratio``, also called a projection;
  2. transposed convolution (by default, 3x3);
  3. 1x1 convolution which increases the number of channels to
  ``out_channels``, also called an expansion;
  4. dropout as a regularizer.
  
  Keyword arguments:
  - in_channels (int): the number of input channels.
  - out_channels (int): the number of output channels.
  - internal_ratio (int, optional): a scale factor applied to ``in_channels``
   used to compute the number of channels after the projection. eg. given
   ``in_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.
  - 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: ["The","upsampling","bottlenecks","upsample","the","feature","map","resolution","using","max","pooling","indices","stored","from","the","corresponding","downsampling","bottleneck",".","Main","branch",":","1",".","1x1","convolution","with","stride","1","that","decreases","the","number","of","channels","by","``","internal_ratio","``",",","also","called","a","projection",";","2.","max","unpool","layer","using","the","max","pool","indices","from","the","corresponding","downsampling","max","pool","layer",".","Extension","branch",":","1",".","1x1","convolution","with","stride","1","that","decreases","the","number","of","channels","by","``","internal_ratio","``",",","also","called","a","projection",";","2.","transposed","convolution","(","by","default",",","3x3",")",";","3",".","1x1","convolution","which","increases","the","number","of","channels","to","``","out_channels","``",",","also","called","an","expansion",";","4.","dropout","as","a","regularizer",".","Keyword","arguments",":","-","in_channels","(","int",")",":","the","number","of","input","channels",".","-","out_channels","(","int",")",":","the","number","of","output","channels",".","-","internal_ratio","(","int",",","optional",")",":","a","scale","factor","applied","to","``","in_channels","``","used","to","compute","the","number","of","channels","after","the","projection",".","eg",".","given","``","in_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",".","-","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, max_indices):
      # Main branch shortcut
      main = self.main_conv1(x)
      main = self.main_unpool1(main, max_indices)
      # Extension branch
      ext = self.ext_conv1(x)
      ext = self.ext_conv2(ext)
      ext = self.ext_conv3(ext)
      ext = self.ext_regul(ext)
  
      # Add main and extension branches
      out = main + ext
  
      return self.out_prelu(out)
  
imports: import torch.nn
  import torch
label_desc: Use image node_id 2 for calling the UpsamplingBottleneck obj's underlying member method code with example usage: obj.forward(x, max_indices) and returns: self