code: def pixelshuffle_block(
      in_nc,
      out_nc,
      upscale_factor=2,
      kernel_size=3,
      stride=1,
      bias=True,
      pad_type="zero",
      norm_type=None,
      act_type="relu",
      convtype="Conv2D",
  ):
      """
      Pixel shuffle layer
      (Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional
      Neural Network, CVPR17)
      """
      conv = conv_block(
          in_nc,
          out_nc * (upscale_factor**2),
          kernel_size,
          stride,
          bias=bias,
          pad_type=pad_type,
          norm_type=None,
          act_type=None,
          convtype=convtype,
      )
      pixel_shuffle = nn.PixelShuffle(upscale_factor)
  
      n = norm(norm_type, out_nc) if norm_type else None
      a = act(act_type) if act_type else None
      return sequential(conv, pixel_shuffle, n, a)
  
imports: from collections import OrderedDict
  import math
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 3 for calling a global function with example usage: pixelshuffle_block(in_nc, out_nc, upscale_factor, kernel_size, stride, bias, pad_type, norm_type, act_type, convtype) and returns: sequential