code: def __init__(
      self,
      inplanes,
      planes,
      kernel_size=None,
      dilation=None,
      scale=4,
      pool=False,
  ):
      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.mp = nn.MaxPool1d(pool) if pool else False
      self.afms = AFMS(planes)
  
      if inplanes != planes:  # if change in number of filters
          self.residual = nn.Sequential(
              nn.Conv1d(
                  inplanes, planes, kernel_size=1, stride=1, bias=False
              )
          )
      else:
          self.residual = nn.Identity()
  
file_path: espnet/espnet2/spk/layers/rawnet_block.py
imports: import math
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new Bottle2neck object from inherited base classes: nn with example: obj = Bottle2neck(inplanes, planes, kernel_size, dilation, scale, pool)