class_docstr: Residual Convolutional Blocks with BN
  Each block has 'num_conv_block' conv layers and 'num_res_blocks' such blocks are connected
  with residual connections.
  
  conv_block = (conv1d -> relu -> bn) x 'num_conv_blocks'
  residuak_conv_block =  (x -> conv_block ->  + ->) x 'num_res_blocks'
                          ' - - - - - - - - - ^
  Args:
      in_channels (int): number of input channels.
      out_channels (int): number of output channels.
      hidden_channels (int): number of inner convolution channels.
      kernel_size (int): kernel size for convolutional filters.
      dilations (list): dilations for each convolution layer.
      num_res_blocks (int, optional): number of residual blocks. Defaults to 13.
      num_conv_blocks (int, optional): number of convolutional blocks in each residual block. Defaults to 2.
class_docstr_tok: ["Residual","Convolutional","Blocks","with","BN","Each","block","has","'num_conv_block","'","conv","layers","and","'num_res_blocks","'","such","blocks","are","connected","with","residual","connections",".","conv_block","=","(","conv1d","-",">","relu","-",">","bn",")","x","'num_conv_blocks'","residuak_conv_block","=","(","x","-",">","conv_block","-",">","+","-",">",")","x","'num_res_blocks'","'","-","-","-","-","-","-","-","-","-","^","Args",":","in_channels","(","int",")",":","number","of","input","channels",".","out_channels","(","int",")",":","number","of","output","channels",".","hidden_channels","(","int",")",":","number","of","inner","convolution","channels",".","kernel_size","(","int",")",":","kernel","size","for","convolutional","filters",".","dilations","(","list",")",":","dilations","for","each","convolution","layer",".","num_res_blocks","(","int",",","optional",")",":","number","of","residual","blocks",".","Defaults","to","13.","num_conv_blocks","(","int",",","optional",")",":","number","of","convolutional","blocks","in","each","residual","block",".","Defaults","to","2","."]
code: def forward(self, x, x_mask=None):
      if x_mask is None:
          x_mask = 1.0
      o = x * x_mask
      for block in self.res_blocks:
          res = o
          o = block(o)
          o = o + res
          if x_mask is not None:
              o = o * x_mask
      return o
  
file_path: TTS/TTS/tts/layers/generic/res_conv_bn.py
imports: from torch import nn
label_desc: Use image node_id 2 for calling the ResidualConv1dBNBlock obj's underlying member method code with example usage: obj.forward(x, x_mask) and returns: o