class_docstr: A quasi-UNet block, using `PixelShuffle_ICNR upsampling`.
class_docstr_tok: ["A","quasi-UNet","block",",","using","`","PixelShuffle_ICNR","upsampling","`","."]
code: def __init__(
      self,
      up_in_c: int,
      x_in_c: int,
      n_out: int,
      hook,
      final_div: bool = True,
      blur: bool = False,
      leaky: float = None,
      self_attention: bool = False,
      **kwargs,
  ):
      super().__init__()
      self.hook = hook
      up_out = x_out = n_out // 2
      self.shuf = CustomPixelShuffle_ICNR(
          up_in_c, up_out, blur=blur, leaky=leaky, **kwargs
      )
      self.bn = nn.BatchNorm(x_in_c)
      ni = up_out + x_in_c
      self.conv = custom_conv_layer(
          ni,
          x_out,
          leaky=leaky,
          self_attention=self_attention,
          **kwargs,
      )
      self.relu = relu(leaky=leaky)
  
imports: import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle.vision.models import resnet101
  from .None import utils
label_desc: Use image node_id 1 to create a new UnetBlockWide object from inherited base classes: nn with example: obj = UnetBlockWide(up_in_c, x_in_c, n_out, hook, final_div, blur, leaky, _attention)