code: def __init__(
      self,
      in_channels: int = 1,
      num_classes: int = 2,
      bilinear: bool = True,
      base_c: int = 64,
  ):
      super(UNet, self).__init__()
      self.in_channels = in_channels
      self.num_classes = num_classes
      self.bilinear = bilinear
  
      self.in_conv = DoubleConv(in_channels, base_c)
      self.down1 = Down(base_c, base_c * 2)
      self.down2 = Down(base_c * 2, base_c * 4)
      self.down3 = Down(base_c * 4, base_c * 8)
      factor = 2 if bilinear else 1
      self.down4 = Down(base_c * 8, base_c * 16 // factor)
      self.up1 = Up(base_c * 16, base_c * 8 // factor, bilinear)
      self.up2 = Up(base_c * 8, base_c * 4 // factor, bilinear)
      self.up3 = Up(base_c * 4, base_c * 2 // factor, bilinear)
      self.up4 = Up(base_c * 2, base_c, bilinear)
      self.out_conv = OutConv(base_c, num_classes)
  
imports: from typing import Dict
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new UNet object from inherited base classes: nn with example: obj = UNet(in_channels, num_classes, bilinear, base_c)