code: def __init__(
      self,
      input_size,
      kernel_size,
      # ARBABU TODO : convert this to a enum
      convolution_type: str,
      num_heads,
      weight_softmax,
      bias,
  ):
      super().__init__()
      self.input_size = input_size
      self.kernel_size = kernel_size
      if convolution_type == "non-causal":
          padding_l = (
              kernel_size // 2
              if kernel_size % 2 == 1
              else ((kernel_size - 1) // 2, kernel_size // 2)
          )
      elif convolution_type == "causal":
          padding_l = kernel_size - 1
      else:
          raise Exception("Convolution type not supported")
      self.padding_l = padding_l
      self.num_heads = num_heads
      self.weight_softmax = weight_softmax
  
      self.weight = nn.Parameter(
          torch.Tensor(num_heads, 1, kernel_size)
      )
  
      self.has_bias = bias
      if bias:
          self.bias = nn.Parameter(
              torch.Tensor(input_size).view(1, 1, -1)
          )
      else:
          self.bias = nn.Parameter(torch.Tensor())
  
      self.reset_parameters()
  
file_path: pytext/pytext/models/seq_models/light_conv.py
imports: from typing import Dict, Optional
  import torch.jit
  import torch.nn
  from pytext.config import ConfigBase
  from torch import Tensor
  from .base import PyTextIncrementalDecoderComponent
  from .utils import unfold1d
label_desc: Use image node_id 2 to create a new LightweightConv object from inherited base classes: PyTextIncrementalDecoderComponent with example: obj = LightweightConv(input_size, kernel_size, convolution_type, num_heads, weight_softmax, bias)