class_docstr: Glow-TTS duration prediction model.
  [2 x (conv1d_kxk -> relu -> layer_norm -> dropout)] -> conv1d_1x1 -> durs
  
      Args:
          in_channels ([type]): [description]
          hidden_channels ([type]): [description]
          kernel_size ([type]): [description]
          dropout_p ([type]): [description]
class_docstr_tok: ["Glow-TTS","duration","prediction","model",".","[","2","x","(","conv1d_kxk","-",">","relu","-",">","layer_norm","-",">","dropout",")","]","-",">","conv1d_1x1","-",">","durs","Args",":","in_channels","(","[","type","]",")",":","[","description","]","hidden_channels","(","[","type","]",")",":","[","description","]","kernel_size","(","[","type","]",")",":","[","description","]","dropout_p","(","[","type","]",")",":","[","description","]"]
docstr: Shapes:
      x: [B, C, T]
      x_mask: [B, 1, T]
  
  Returns:
      [type]: [description]
docstr_tok: ["Shapes",":","x",":","[","B",",","C",",","T","]","x_mask",":","[","B",",","1",",","T","]","Returns",":","[","type","]",":","[","description","]"]
code: def forward(self, x, x_mask):
      """
      Shapes:
          x: [B, C, T]
          x_mask: [B, 1, T]
  
      Returns:
          [type]: [description]
      """
      x = self.conv_1(x * x_mask)
      x = torch.relu(x)
      x = self.norm_1(x)
      x = self.drop(x)
      x = self.conv_2(x * x_mask)
      x = torch.relu(x)
      x = self.norm_2(x)
      x = self.drop(x)
      x = self.proj(x * x_mask)
      return x * x_mask
  
imports: import torch
  from torch import nn
  from ..generic.normalization import LayerNorm
label_desc: Use image node_id 2 for calling the DurationPredictor obj's underlying member method code with example usage: obj.forward(x, x_mask) and returns: unknown