class_docstr: Depth to Space feature map upsampling that preserves the input channels.
  This block performs grouped convolution to increase number of channels followed by pixel shuffle.
  
  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, kernel_size: int = 3
  ):
      super().__init__()
      n = scale_factor * scale_factor
      self.conv = nn.Conv2d(
          in_channels,
          in_channels * n,
          kernel_size=kernel_size,
          padding=kernel_size // 2,
          bias=False,
      )
      self.out_channels = in_channels
      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 PixelShuffleWithLinear object from inherited base classes: AbstractResizeLayer with example: obj = PixelShuffleWithLinear(in_channels, scale_factor, kernel_size)