def L2NormLoss_train(gt, out):
    '\n    # (batch size,feature dim, seq len)\n    等同于 mpjpe_error_p3d()\n    '
    (batch_size, _, seq_len) = gt.shape
    gt = gt.view(batch_size, (- 1), 3, seq_len).permute(0, 3, 1, 2).contiguous()
    out = out.view(batch_size, (- 1), 3, seq_len).permute(0, 3, 1, 2).contiguous()
    loss = torch.mean(torch.norm((gt - out), 2, dim=(- 1)))
    return loss
# (batch size,feature dim, seq len)
等同于 mpjpe_error_p3d()
def L2NormLoss_train(gt, out):
    '\n    # (batch size,feature dim, seq len)\n    等同于 mpjpe_error_p3d()\n    '
    (batch_size, _, seq_len) = gt.shape
    gt = gt.view(batch_size, (- 1), 3, seq_len).permute(0, 3, 1, 2).contiguous()
    out = out.view(batch_size, (- 1), 3, seq_len).permute(0, 3, 1, 2).contiguous()
    loss = torch.mean(torch.norm((gt - out), 2, dim=(- 1)))
    return loss