class_docstr: input:
   x: B x C x H x W  (C = 2048)
  output: B x nClass x H x W
class_docstr_tok: ["input",":","x",":","B","x","C","x","H","x","W","(","C","=","2048",")","output",":","B","x","nClass","x","H","x","W"]
code: def __init__(self, in_channels, out_channels, norm_layer, r1, r2):
      super(TFAHead, self).__init__()
      # TFA module
      inter_channels = in_channels // 4  # 2048-->512
      self.TFA_level_1 = self._make_level(
          2048, inter_channels, r1[0], r2[0], norm_layer
      )
      self.TFA_level_list = nn.ModuleList()
      for i in range(1, len(r1)):
          self.TFA_level_list.append(
              self._make_level(
                  inter_channels,
                  inter_channels,
                  r1[i],
                  r2[i],
                  norm_layer,
              )
          )
  
      # segmentation subnetwork
      self.conv51 = nn.Sequential(
          nn.Conv2d(
              in_channels + inter_channels * len(r1),
              inter_channels,
              3,
              padding=1,
              bias=False,
          ),
          norm_layer(inter_channels),
          nn.ReLU(),
      )
      self.conv6 = nn.Sequential(
          nn.Dropout2d(0.1, False),
          nn.Conv2d(inter_channels, out_channels, 1),
      )
  
file_path: pywick/pywick/models/segmentation/testnets/tkcnet/tkcnet.py
imports: import torch
  import torch.nn
  from torch.nn.functional import upsample
  from .base import BaseNet
label_desc: Use image node_id 1 to create a new TFAHead object from inherited base classes: nn with example: obj = TFAHead(in_channels, out_channels, norm_layer, r1, r2)