class_docstr: This class implements an NMF encoder with a convolutional network
  
  Arguments
  ---------
  n_freq : int
      The number of frequency bins in the NMF dictionary
  n_comp : int
      Number of NMF components
  
  Example:
  --------
  >>> nmfencoder = NMFEncoder(513, 100)
  >>> X = torch.rand(1, 513, 240)
  >>> Hhat = nmfencoder(X)
  >>> print(Hhat.shape)
  torch.Size([1, 100, 240])
class_docstr_tok: ["This","class","implements","an","NMF","encoder","with","a","convolutional","network","Arguments","--","--","--","--","-","n_freq",":","int","The","number","of","frequency","bins","in","the","NMF","dictionary","n_comp",":","int","Number","of","NMF","components","Example",":","--","--","--","--",">",">",">","nmfencoder","=","NMFEncoder","(","513",",","100",")",">",">",">","X","=","torch.rand","(","1",",","513",",","240",")",">",">",">","Hhat","=","nmfencoder","(","X",")",">",">",">","print","(","Hhat.shape",")","torch.Size","(","[","1",",","100",",","240","]",")"]
code: def __init__(self, n_freq, n_comp):
      super().__init__()
      self.convenc = nn.Sequential(
          nn.Conv1d(n_freq, 256, kernel_size=8, padding="same"),
          nn.ReLU(),
          nn.Conv1d(256, 128, kernel_size=8, padding="same"),
          nn.ReLU(),
          nn.Conv1d(128, n_comp, kernel_size=8, padding="same"),
          nn.ReLU(),
      )
  
imports: import torch.nn
  import torch.nn.functional
  import torch
  from speechbrain.lobes.models.PIQ import ResBlockAudio
label_desc: Use image node_id 1 to create a new NMFEncoder object from inherited base classes: nn with example: obj = NMFEncoder(n_freq, n_comp)