def L2NormLoss_test(gt, out, frame_ids):
    '\n    gt: B, 66, 25\n    '
    t_3d = np.zeros(len(frame_ids))
    (batch_size, features, seq_len) = gt.shape
    gt = gt.permute(0, 2, 1).contiguous().view(batch_size, seq_len, (- 1), 3)
    out = out.permute(0, 2, 1).contiguous().view(batch_size, seq_len, (- 1), 3)
    for k in np.arange(0, len(frame_ids)):
        j = frame_ids[k]
        t_3d[k] = (torch.mean(torch.norm((gt[:, j, :, :].contiguous().view((- 1), 3) - out[:, j, :, :].contiguous().view((- 1), 3)), 2, 1)).cpu().data.numpy() * batch_size)
    return t_3d
gt: B, 66, 25
def L2NormLoss_test(gt, out, frame_ids):
    '\n    \n    '
    t_3d = np.zeros(len(frame_ids))
    (batch_size, features, seq_len) = gt.shape
    gt = gt.permute(0, 2, 1).contiguous().view(batch_size, seq_len, (- 1), 3)
    out = out.permute(0, 2, 1).contiguous().view(batch_size, seq_len, (- 1), 3)
    for k in np.arange(0, len(frame_ids)):
        j = frame_ids[k]
        t_3d[k] = (torch.mean(torch.norm((gt[:, j, :, :].contiguous().view((- 1), 3) - out[:, j, :, :].contiguous().view((- 1), 3)), 2, 1)).cpu().data.numpy() * batch_size)
    return t_3d