docstr: Input shape is expected to be $(batch, nfreqs, time)$, with $nfreqs - 1$
  divisible by $f_0 * f_1 * ... * f_N$ where $f_k$ are the frequency strides
  of the encoders, and $time - 1$ is divisible by $t_0 * t_1 * ... * t_N$
  where $t_N$ are the time strides of the encoders.
  Args:
      spec (Tensor): complex spectrogram tensor. 1D, 2D or 3D tensor, time last.
  Returns:
      Tensor, of shape (batch, time) or (time).
code: def forward(self, spec, t) -> Tensor:
      """
      Input shape is expected to be $(batch, nfreqs, time)$, with $nfreqs - 1$
      divisible by $f_0 * f_1 * ... * f_N$ where $f_k$ are the frequency strides
      of the encoders, and $time - 1$ is divisible by $t_0 * t_1 * ... * t_N$
      where $t_N$ are the time strides of the encoders.
      Args:
          spec (Tensor): complex spectrogram tensor. 1D, 2D or 3D tensor, time last.
      Returns:
          Tensor, of shape (batch, time) or (time).
      """
      # TF-rep shape: (batch, self.input_channels, n_fft, frames)
      # Estimate mask from time-frequency representation.
      x_in = self.fix_input_dims(spec)
      x = x_in
      t_embed = (
          self.embed(t + 0j)
          if self.time_embedding is not None
          else None
      )
  
      enc_outs = []
      for idx, enc in enumerate(self.encoders):
          x = enc(x, t_embed)
          # UNet skip connection
          enc_outs.append(x)
      for enc_out, dec in zip(reversed(enc_outs[:-1]), self.decoders):
          x = dec(x, t_embed, output_size=enc_out.shape)
          x = torch.cat([x, enc_out], dim=1)
  
      output = self.output_layer(x, output_size=x_in.shape)
      # output shape: (batch, 1, n_fft, frames)
      output = self.fix_output_dims(output, spec)
      return output
  
imports: import functools
  from functools import partial
  import numpy
  import torch
  from torch import Tensor, nn
  from torch.nn.modules.batchnorm import _BatchNorm
label_desc: Use image node_id 2 for calling the DCUNet obj's underlying member method code with example usage: obj.forward(spec, t) and returns: output