class_docstr: Dual-path transformer network.
  
  args:
      rnn_type (str): select from 'RNN', 'LSTM' and 'GRU'.
      input_size (int): dimension of the input feature.
          Input size must be a multiple of `att_heads`.
      hidden_size (int): dimension of the hidden state.
      output_size (int): dimension of the output size.
      att_heads (int): number of attention heads.
      dropout (float): dropout ratio. Default is 0.
      activation (str): activation function applied at the output of RNN.
      num_layers (int): number of stacked RNN layers. Default is 1.
      bidirectional (bool): whether the RNN layers are bidirectional. Default is True.
      norm_type (str): type of normalization to use after each inter- or
          intra-chunk Transformer block.
class_docstr_tok: ["Dual-path","transformer","network",".","args",":","rnn_type","(","str",")",":","select","from","'RNN","'",",","'LSTM","'","and","'GRU","'",".","input_size","(","int",")",":","dimension","of","the","input","feature",".","Input","size","must","be","a","multiple","of","`","att_heads","`",".","hidden_size","(","int",")",":","dimension","of","the","hidden","state",".","output_size","(","int",")",":","dimension","of","the","output","size",".","att_heads","(","int",")",":","number","of","attention","heads",".","dropout","(","float",")",":","dropout","ratio",".","Default","is","0.","activation","(","str",")",":","activation","function","applied","at","the","output","of","RNN",".","num_layers","(","int",")",":","number","of","stacked","RNN","layers",".","Default","is","1.","bidirectional","(","bool",")",":","whether","the","RNN","layers","are","bidirectional",".","Default","is","True",".","norm_type","(","str",")",":","type","of","normalization","to","use","after","each","inter-","or","intra-chunk","Transformer","block","."]
code: def forward(self, input):
      # input shape: batch, N, dim1, dim2
      # apply Transformer on dim1 first and then dim2
      # output shape: B, output_size, dim1, dim2
      # input = input.to(device)
      output = input
      for i in range(len(self.row_transformer)):
          output = self.intra_chunk_process(output, i)
          output = self.inter_chunk_process(output, i)
  
      output = self.output(output)  # B, output_size, dim1, dim2
  
      return output
  
file_path: espnet/espnet2/enh/layers/dptnet.py
imports: import torch.nn
  from espnet2.enh.layers.tcn import choose_norm
  from espnet.nets.pytorch_backend.nets_utils import get_activation
label_desc: Use image node_id 2 for calling the DPTNet obj's underlying member method code with example usage: obj.forward(input) and returns: output