code: def forward(self, joints_2d, root_3d=None):
      joints_2d = joints_2d.contiguous()
      bs = joints_2d.size(0)
      if root_3d is None:
          joints_in = joints_2d.view(bs, -1)
      else:
          joints_in = torch.cat(
              [joints_2d.view(bs, -1), root_3d.view(bs, -1)], -1
          )
  
      x = self.pre(joints_in)
      for block in self.blocks:
          x = block(x, joints_in)
      out = x.view(x.size(0), self.num_channels)
      # joints_in will be used in lifter_after
      return out, joints_in
  
file_path: insightface/body/human_pose/ambiguity_aware/lib/models/lifter.py
imports: import torch
  import torch.nn
  from lib.models.building_blocks import Branch, ResBlock
  from lib.utils.misc import init_weights
label_desc: Use image node_id 2 for calling the LifterBefore obj's underlying member method code with example usage: obj.forward(joints_2d, root_3d) and returns: out,  joints_in