docstr: KeyPointMSELoss layer
  
  Args:
      weight_3d (float): weight of 3d loss
      weight_2d (float): weight of 2d loss
      reduction (bool): whether use reduction to loss
docstr_tok: ["KeyPointMSELoss","layer","Args",":","weight_3d","(","float",")",":","weight","of","3d","loss","weight_2d","(","float",")",":","weight","of","2d","loss","reduction","(","bool",")",":","whether","use","reduction","to","loss"]
code: def __init__(self, weight_3d=1.0, weight_2d=0.0, reduction="none"):
      """
      KeyPointMSELoss layer
  
      Args:
          weight_3d (float): weight of 3d loss
          weight_2d (float): weight of 2d loss
          reduction (bool): whether use reduction to loss
      """
      super(Pose3DLoss, self).__init__()
      self.weight_3d = weight_3d
      self.weight_2d = weight_2d
      self.criterion_2dpose = nn.MSELoss(reduction=reduction)
      self.criterion_3dpose = nn.L1Loss(reduction=reduction)
      self.criterion_smoothl1 = nn.SmoothL1Loss(
          reduction=reduction, delta=1.0
      )
      self.criterion_vertices = nn.L1Loss()
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from itertools import cycle, islice
  from collections import abc
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from ppdet.core.workspace import register, serializable
  from ppdet.utils.logger import setup_logger
label_desc: Use image node_id 1 to create a new Pose3DLoss object from inherited base classes: nn with example: obj = Pose3DLoss(weight_3d, weight_2d, reduction)