code: def forward(self, joints_2d):
      joints_2d = joints_2d.contiguous()
      joints_2d = joints_2d.view(joints_2d.size(0), -1)
      x = self.w1(joints_2d)
      if self.use_bn:
          x = self.batch_norm1(x)
      for l in range(self.num_stage):
          x = self.linear_stages[l](x)
      out = self.out(x)
  
      return out
  
imports: import torch
  import torch.nn
  import numpy
  import pickle
  from lib.utils.misc import init_weights, load_pickle
  from lib.utils.utils import Transform3D, transform_3d, transform_3d_v2
  from lib.models.building_blocks import ResBlock
  from lib.models.scaler import get_scaler
  from lib.models.rotater import get_rotater
  from lib.models.lifter import get_lifter_before, get_lifter_after
  from lib.models.simple_model import LinearModelBefore, LinearModelAfter, Linear
  from lib.utils.utils import rotate, rotate2
label_desc: Use image node_id 2 for calling the SimpleDiscriminator obj's underlying member method code with example usage: obj.forward(joints_2d) and returns: out