code: def __init__(self, in_channels, out_channels, num_conv_layers):
      super(_DecoderBlock, self).__init__()
      middle_channels = in_channels / 2
      layers = [
          nn.ConvTranspose2d(
              in_channels, in_channels, kernel_size=2, stride=2
          ),
          nn.Conv2d(
              in_channels, middle_channels, kernel_size=3, padding=1
          ),
          nn.BatchNorm2d(middle_channels),
          nn.ReLU(inplace=True),
      ]
      layers += [
          nn.Conv2d(
              middle_channels, middle_channels, kernel_size=3, padding=1
          ),
          nn.BatchNorm2d(middle_channels),
          nn.ReLU(inplace=True),
      ] * (num_conv_layers - 2)
      layers += [
          nn.Conv2d(
              middle_channels, out_channels, kernel_size=3, padding=1
          ),
          nn.BatchNorm2d(out_channels),
          nn.ReLU(inplace=True),
      ]
      self.decode = nn.Sequential(*layers)
  
file_path: pywick/pywick/models/segmentation/seg_net.py
imports: import torch
  from torch import nn
  from torchvision import models
  from .fcn_utils import initialize_weights
  from .config import vgg19_bn_path
label_desc: Use image node_id 1 to create a new _DecoderBlock object from inherited base classes: nn with example: obj = _DecoderBlock(in_channels, out_channels, num_conv_layers)