class_docstr: Lightweight Convolution layer.
  
  This implementation is based on
  https://github.com/pytorch/fairseq/tree/master/fairseq
  
  Args:
      wshare (int): the number of kernel of convolution
      n_feat (int): the number of features
      dropout_rate (float): dropout_rate
      kernel_size (int): kernel size (length)
      use_kernel_mask (bool): Use causal mask or not for convolution kernel
      use_bias (bool): Use bias term or not.
docstr: Construct Lightweight Convolution layer.
docstr_tok: ["Construct","Lightweight","Convolution","layer","."]
code: def __init__(
      self,
      wshare,
      n_feat,
      dropout_rate,
      kernel_size,
      use_kernel_mask=False,
      use_bias=False,
  ):
      """Construct Lightweight Convolution layer."""
      super(LightweightConvolution, self).__init__()
  
      assert n_feat % wshare == 0
      self.wshare = wshare
      self.use_kernel_mask = use_kernel_mask
      self.dropout_rate = dropout_rate
      self.kernel_size = kernel_size
      self.padding_size = int(kernel_size / 2)
  
      # linear -> GLU -> lightconv -> linear
      self.linear1 = nn.Linear(n_feat, n_feat * 2)
      self.linear2 = nn.Linear(n_feat, n_feat)
      self.act = nn.GLU()
  
      # lightconv related
      self.weight = nn.Parameter(
          torch.Tensor(self.wshare, 1, kernel_size).uniform_(0, 1)
      )
      self.use_bias = use_bias
      if self.use_bias:
          self.bias = nn.Parameter(torch.Tensor(n_feat))
  
      # mask of kernel
      kernel_mask0 = torch.zeros(self.wshare, int(kernel_size / 2))
      kernel_mask1 = torch.ones(self.wshare, int(kernel_size / 2 + 1))
      self.kernel_mask = torch.cat(
          (kernel_mask1, kernel_mask0), dim=-1
      ).unsqueeze(1)
  
imports: import numpy
  import torch
  import torch.nn.functional
  from torch import nn
label_desc: Use image node_id 1 to create a new LightweightConvolution object from inherited base classes: nn with example: obj = LightweightConvolution(wshare, n_feat, dropout_rate, kernel_size, use_kernel_mask, use_bias)