class_docstr: Convolutions with Batch Normalization and non-linear activation.
  
  Args:
      in_channels (int): number of input channels.
      out_channels (int): number of output channels.
      kernel_size (int): convolution kernel size.
      activation (str): 'relu', 'tanh', None (linear).
  
  Shapes:
      - input: (B, C_in, T)
      - output: (B, C_out, T)
code: def forward(self, x):
      o = self.convolution1d(x)
      o = self.batch_normalization(o)
      o = self.activation(o)
      o = self.dropout(o)
      return o
  
imports: import torch
  from torch import nn
  from torch.nn import functional
  from .attentions import init_attn
  from .common_layers import Linear, Prenet
label_desc: Use image node_id 2 for calling the ConvBNBlock obj's underlying member method code with example usage: obj.forward(x) and returns: o