class_docstr: UpsampleConvLayer
  Upsamples the input and then does a convolution. This method gives better results
  compared to ConvTranspose2d.
  ref: http://distill.pub/2016/deconv-checkerboard/
class_docstr_tok: ["UpsampleConvLayer","Upsamples","the","input","and","then","does","a","convolution",".","This","method","gives","better","results","compared","to","ConvTranspose2d",".","ref",":","http",":","\/\/distill.pub\/2016\/deconv-checkerboard\/"]
code: def __init__(
      self,
      in_channels,
      out_channels,
      kernel_size,
      stride,
      upsample=None,
  ):
      super(UpsampleConvLayer, self).__init__()
      self.upsample = upsample
      if upsample:
          self.upsample_layer = torch.nn.Upsample(
              mode="nearest", scale_factor=upsample
          )
      reflection_padding = kernel_size // 2
      self.reflection_pad = torch.nn.ReflectionPad2d(reflection_padding)
      self.conv2d = torch.nn.Conv2d(
          in_channels, out_channels, kernel_size, stride
      )
  
imports: import argparse
  import os
  import sys
  import re
  import json
  import traceback
  from PIL import Image
  import torch
  from torchvision import transforms
  from azureml.core.model import Model
label_desc: Use image node_id 1 to create a new UpsampleConvLayer object from inherited base classes: torch.nn with example: obj = UpsampleConvLayer(in_channels, out_channels, kernel_size, stride, upsample)