docstr: Channel Transform-Average-Concatenate (TAC) module.
  
  Args:
      input_dim (int): dimension of the input feature.
      eps (float): epsilon for layer normalization.
docstr_tok: ["Channel","Transform-Average-Concatenate","(","TAC",")","module",".","Args",":","input_dim","(","int",")",":","dimension","of","the","input","feature",".","eps","(","float",")",":","epsilon","for","layer","normalization","."]
code: def __init__(self, input_dim, eps=1e-5):
      """Channel Transform-Average-Concatenate (TAC) module.
  
      Args:
          input_dim (int): dimension of the input feature.
          eps (float): epsilon for layer normalization.
      """
      super().__init__()
      hidden_dim = input_dim * 3
      self.transform = nn.Sequential(
          nn.Linear(input_dim, hidden_dim), nn.PReLU()
      )
      self.average = nn.Sequential(
          nn.Linear(hidden_dim, hidden_dim), nn.PReLU()
      )
      self.concat = nn.Sequential(
          nn.Linear(hidden_dim * 2, input_dim),
          nn.PReLU(),
          LayerNormalization(input_dim, dim=-1, total_dim=5, eps=eps),
      )
  
imports: import warnings
  import torch
  import torch.nn
  from espnet2.enh.layers.dptnet import ImprovedTransformerLayer
  from espnet2.enh.layers.tcn import ChannelwiseLayerNorm
  from espnet2.torch_utils.get_layer_from_string import get_layer
label_desc: Use image node_id 1 to create a new ChannelTAC object from inherited base classes: nn with example: obj = ChannelTAC(input_dim, eps)