docstr: Args:
      output (numpy.ndarray): numpy.ndarray([batch_size, num_joints, 3]), keypoints coords
      scale (numpy.ndarray): The scale factor
  Returns:
      preds: numpy.ndarray([batch_size, num_joints, 3]), keypoints coords
docstr_tok: ["Args",":","output","(","numpy.ndarray",")",":","numpy.ndarray","(","[","batch_size",",","num_joints",",","3","]",")",",","keypoints","coords","scale","(","numpy.ndarray",")",":","The","scale","factor","Returns",":","preds",":","numpy.ndarray","(","[","batch_size",",","num_joints",",","3","]",")",",","keypoints","coords"]
code: def __call__(self, output, center, scale):
      """
      Args:
          output (numpy.ndarray): numpy.ndarray([batch_size, num_joints, 3]), keypoints coords
          scale (numpy.ndarray): The scale factor
      Returns:
          preds: numpy.ndarray([batch_size, num_joints, 3]), keypoints coords
      """
  
      preds = output.numpy().copy()
  
      # Transform back
      for i in range(output.shape[0]):  # batch_size
          preds[i][:, 0] = preds[i][:, 0] * scale[i][0]
          preds[i][:, 1] = preds[i][:, 1] * scale[i][1]
  
      return preds
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  import numpy
  import math
  import cv2
  from ppdet.core.workspace import register, create
  from .meta_arch import BaseArch
  from ..keypoint_utils import transform_preds
  from ..None import layers
  from paddle.nn import functional
label_desc: Use image node_id 2 for calling the TinyPose3DPostProcess obj's underlying member method code with example usage: obj.__call__(output, center, scale) and returns: preds