code: def hybrid_forward(self, F, x, step=0, alpha=-1):
      for i in range(step, -1, -1):
          index = self.n_layer - i - 1
  
          if i == step:
              out = self.from_rgb[index](x)
  
          if i == 0:
              out_mean = nd.mean(out, 0)
              out_var = (out - out_mean) ** 2
              out_std = F.sqrt(nd.mean(out_var, 0) + 1e-8)
              mean_std = out_std.mean()
              mean_std = mean_std.broadcast_to([out.shape[0], 1, 4, 4])
              out = F.Concat(out, mean_std, dim=1)
  
          out = self.progression[index](out)
  
          if i > 0:
              if i == step and 0 <= alpha < 1:
                  skip_rgb = F.Pooling(
                      x, kernel=(2, 2), stride=(2, 2), pool_type="avg"
                  )
                  skip_rgb = self.from_rgb[index + 1](skip_rgb)
                  out = (1 - alpha) * skip_rgb + alpha * out
  
      out = F.squeeze(out, axis=2)
      out = F.squeeze(out, axis=2)
  
      out = self.linear(out)
  
      return out
  
file_path: gluon-cv/scripts/gan/stylegan/model.py
imports: import random
  import numpy
  from math import sqrt
  import mxnet
  import mxnet.ndarray
  from modules import *
label_desc: Use image node_id 2 for calling the Discriminator obj's underlying member method code with example usage: obj.hybrid_forward(F, x, step, alpha) and returns: out