class_docstr: A quasi-UNet block, using `PixelShuffle_ICNR upsampling`.
code: def forward(self, up_in):
      s = self.hook.stored
      up_out = self.shuf(up_in)
      ssh = s.shape[-2:]
      if ssh != up_out.shape[-2:]:
          up_out = F.interpolate(up_out, s.shape[-2:], mode="nearest")
      cat_x = self.relu(torch.cat([up_out, self.bn(s)], dim=1))
      return self.conv2(self.conv1(cat_x))
  
file_path: fastai/fastai/vision/models/unet.py
imports: from __future__ import annotations
  from ...torch_basics import *
  from ...callback.hook import *
label_desc: Use image node_id 2 for calling the UnetBlock obj's underlying member method code with example usage: obj.forward(up_in) and returns: self