class_docstr: CoMBD (Collaborative Multi-band Discriminator) block module
class_docstr_tok: ["CoMBD","(","Collaborative","Multi-band","Discriminator",")","block","module"]
code: def __init__(
      self,
      h_u: List[int],
      d_k: List[int],
      d_s: List[int],
      d_d: List[int],
      d_g: List[int],
      d_p: List[int],
      op_f: int,
      op_k: int,
      op_g: int,
      use_spectral_norm=False,
  ):
      super(CoMBDBlock, self).__init__()
      norm_f = (
          weight_norm if use_spectral_norm is False else spectral_norm
      )
  
      self.convs = torch.nn.ModuleList()
      filters = [[1, h_u[0]]]
      for i in range(len(h_u) - 1):
          filters.append([h_u[i], h_u[i + 1]])
      for _f, _k, _s, _d, _g, _p in zip(
          filters, d_k, d_s, d_d, d_g, d_p
      ):
          self.convs.append(
              norm_f(
                  Conv1d(
                      in_channels=_f[0],
                      out_channels=_f[1],
                      kernel_size=_k,
                      stride=_s,
                      dilation=_d,
                      groups=_g,
                      padding=_p,
                  )
              )
          )
      self.projection_conv = norm_f(
          Conv1d(
              in_channels=filters[-1][1],
              out_channels=op_f,
              kernel_size=op_k,
              groups=op_g,
          )
      )
  
imports: import logging
  from typing import Any, Dict, List, Optional
  import torch
  import torch.nn.functional
  from torch.nn import Conv1d
  from torch.nn.utils import spectral_norm, weight_norm
  from espnet2.gan_svs.visinger2.visinger2_vocoder import MultiFrequencyDiscriminator
  from espnet2.gan_tts.hifigan.residual_block import ResidualBlock
  from espnet2.gan_tts.melgan.pqmf import PQMF
label_desc: Use image node_id 1 to create a new CoMBDBlock object from inherited base classes: torch.nn with example: obj = CoMBDBlock(h_u, d_k, d_s, d_d, d_g, d_p, op_f, op_k, op_g, use_spectral_norm)