class_docstr: Depth to Space feature map upsampling that produces a spatially larger feature map but with smaller number of
  channels. Of the input channels is not divisble by scale_factor^2, an additional 1x1 convolution will be
  applied.
  
  https://github.com/pytorch/pytorch/pull/5429
  https://arxiv.org/ftp/arxiv/papers/1707/1707.02937.pdf
code: def __init__(self, in_channels: int, scale_factor: int):
      super().__init__()
      n = 2**scale_factor
      self.in_channels = in_channels
      self.out_channels = in_channels // n
      rounded_channels = self.out_channels * n
      self.conv = (
          nn.Conv2d(
              rounded_channels,
              self.out_channels * n,
              kernel_size=1,
              padding=1,
              bias=False,
          )
          if in_channels != rounded_channels
          else nn.Identity()
      )
      self.shuffle = nn.PixelShuffle(upscale_factor=scale_factor)
  
imports: from enum import Enum
  from math import hypot
  from typing import Optional, List, Tuple, Union, Type
  import torch
  from torch import nn, Tensor
label_desc: Use image node_id 1 to create a new PixelShuffle object from inherited base classes: AbstractResizeLayer with example: obj = PixelShuffle(in_channels, scale_factor)