class_docstr: Upsamples the input and then does a convolution. This method gives better results compared to ConvTranspose2d.
  ref: http://distill.pub/2016/deconv-checkerboard/
  
  Args:
     in_channels(int): Number of input channels.
     out_channels(int): Number of output channels.
     kernel_size(int): Number of kernel size.
     stride(int): Number of stride.
     upsample(int): Scale factor for upsample layer, default is None.
  
  Return:
      img(paddle.Tensor): UpsampleConvLayer output.
class_docstr_tok: ["Upsamples","the","input","and","then","does","a","convolution",".","This","method","gives","better","results","compared","to","ConvTranspose2d",".","ref",":","http",":","\/\/distill.pub\/2016\/deconv-checkerboard\/","Args",":","in_channels","(","int",")",":","Number","of","input","channels",".","out_channels","(","int",")",":","Number","of","output","channels",".","kernel_size","(","int",")",":","Number","of","kernel","size",".","stride","(","int",")",":","Number","of","stride",".","upsample","(","int",")",":","Scale","factor","for","upsample","layer",",","default","is","None",".","Return",":","img","(","paddle.Tensor",")",":","UpsampleConvLayer","output","."]
code: def forward(self, x):
      if self.upsample:
          x = self.upsample_layer(x)
      if self.pad != 0:
          x = self.reflection_pad(x)
      out = self.conv2d(x)
      return out
  
imports: import os
  import argparse
  import paddle
  import paddle.nn
  import numpy
  import paddle.nn.functional
  from paddlehub.env import MODULE_HOME
  from paddlehub.module.module import moduleinfo
  from paddlehub.vision.transforms import Compose, Resize, CenterCrop
  from paddlehub.module.cv_module import StyleTransferModule
label_desc: Use image node_id 2 for calling the UpsampleConvLayer obj's underlying member method code with example usage: obj.forward(x) and returns: out