code: def forward(self, y, y_hat):
      y_d_rs = []
      y_d_gs = []
      fmap_rs = []
      fmap_gs = []
      for i, d in enumerate(self.discriminators):
          if i != 0:
              y = self.meanpools[i - 1](y)
              y_hat = self.meanpools[i - 1](y_hat)
          y_d_r, fmap_r = d(y)
          y_d_g, fmap_g = d(y_hat)
          y_d_rs.append(y_d_r)
          fmap_rs.append(fmap_r)
          y_d_gs.append(y_d_g)
          fmap_gs.append(fmap_g)
  
      return y_d_rs, y_d_gs, fmap_rs, fmap_gs
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from torch.nn import AvgPool1d, Conv1d, Conv2d, ConvTranspose1d
  from torch.nn.utils import remove_weight_norm, spectral_norm, weight_norm
label_desc: Use image node_id 2 for calling the MultiScaleDiscriminator obj's underlying member method code with example usage: obj.forward(y, y_hat) and returns: y_d_rs,  y_d_gs,  fmap_rs,  fmap_gs