code: def __init__(self, backbone, dataset, **_):
      super(decode, self).__init__()
      if "vgg" in backbone:
          ch = {
              "L1_1": [(64, 256), 64, 4],
              "L1_2": [(128, 512), 128, 4],
              "L1_3": [(256, 512), 256, 4],
          }
      else:
          if "BSDS" in dataset:
              ch = {
                  "L1_1": [(64, 512), 64, 4],
                  "L1_2": [(256, 1024), 128, 2],
                  "L1_3": [(512, 2048), 256, 1],
              }
          elif "NYUD" in dataset:
              ch = {
                  "L1_1": [(64, 512), 64, 4],
                  "L1_2": [(256, 1024), 128, 4],
                  "L1_3": [(512, 2048), 256, 2],
              }
  
      self.level1_1 = Refine_block2_1(
          ch["L1_1"][0],
          ch["L1_1"][1],
          ch["L1_1"][2],
          require_grad=False,
      )
      self.level1_2 = Refine_block2_1(
          ch["L1_2"][0],
          ch["L1_2"][1],
          ch["L1_2"][2],
          require_grad=False,
      )
      self.level1_3 = Refine_block2_1(
          ch["L1_3"][0],
          ch["L1_3"][1],
          ch["L1_3"][2],
          require_grad=False,
      )
  
      self.level2 = Refine_block3_1(
          (64, 128, 256), 64, require_grad=False
      )
      self.level3 = nn.Conv2d(64, 1, kernel_size=1, padding=0)
  
      for m in self.modules():
          if isinstance(m, nn.Conv2d):
              torch.nn.init.normal_(m.weight, 0, 1e-2)
          elif isinstance(m, nn.BatchNorm2d):
              m.weight.data.fill_(1)
              m.bias.data.zero_()
  
imports: import torch.nn.functional
  from .utils import *
  from .backbone import *
label_desc: Use image node_id 1 to create a new decode object from inherited base classes: nn with example: obj = decode(backbone, dataset)