class_docstr: UNet, down sampling & up sampling for global reasoning
class_docstr_tok: ["UNet",",","down","sampling","&","up","sampling","for","global","reasoning"]
code: def __init__(self, input_channels, class_number, **kwargs):
      super(AttentionUNet, self).__init__()
  
      down_channel = kwargs["down_channel"]  # default = 256
  
      down_channel_2 = down_channel * 2
      up_channel_1 = down_channel_2 * 2
      up_channel_2 = down_channel * 2
  
      self.inc = InConv(input_channels, down_channel)
      self.down1 = DownLayer(down_channel, down_channel_2)
      self.down2 = DownLayer(down_channel_2, down_channel_2)
  
      self.up1 = UpLayer(up_channel_1, up_channel_1 // 4)
      self.up2 = UpLayer(up_channel_2, up_channel_2 // 4)
      self.outc = OutConv(up_channel_2 // 4, class_number)
  
imports: import torch.nn
  import torch.nn.functional
  import torch
label_desc: Use image node_id 1 to create a new AttentionUNet object from inherited base classes: torch.nn with example: obj = AttentionUNet(input_channels, class_number)