code: def __init__(
      self, inplanes, planes, kernel_size=None, dilation=None, scale=8
  ):
      super().__init__()
      width = int(math.floor(planes / scale))
      self.conv1 = nn.Conv1d(inplanes, width * scale, kernel_size=1)
      self.bn1 = nn.BatchNorm1d(width * scale)
      self.nums = scale - 1
      convs = []
      bns = []
      num_pad = math.floor(kernel_size / 2) * dilation
      for i in range(self.nums):
          convs.append(
              nn.Conv1d(
                  width,
                  width,
                  kernel_size=kernel_size,
                  dilation=dilation,
                  padding=num_pad,
              )
          )
          bns.append(nn.BatchNorm1d(width))
      self.convs = nn.ModuleList(convs)
      self.bns = nn.ModuleList(bns)
      self.conv3 = nn.Conv1d(width * scale, planes, kernel_size=1)
      self.bn3 = nn.BatchNorm1d(planes)
      self.relu = nn.ReLU()
      self.width = width
      self.se = SEModule(planes)
  
file_path: espnet/espnet2/spk/layers/ecapa_block.py
imports: import math
  import torch
  import torch.nn
label_desc: Use image node_id 1 to create a new EcapaBlock object from inherited base classes: nn with example: obj = EcapaBlock(inplanes, planes, kernel_size, dilation, scale)