docstr: Applies a transform that rotates the predicted rotations from 
  camera space to world space.
  Args:
      rotations: predicted in-camera rotation quaternions (B x N x 4)
      source_cameras_to_world: transformation quaternions from 
          camera-to-world matrices transposed(B x 4)
  Retures:
      rotations with appropriately applied transform to world space
docstr_tok: ["Applies","a","transform","that","rotates","the","predicted","rotations","from","camera","space","to","world","space",".","Args",":","rotations",":","predicted","in-camera","rotation","quaternions","(","B","x","N","x","4",")","source_cameras_to_world",":","transformation","quaternions","from","camera-to-world","matrices","transposed","(","B","x","4",")","Retures",":","rotations","with","appropriately","applied","transform","to","world","space"]
code: def transform_rotations(self, rotations, source_cv2wT_quat):
      """
      Applies a transform that rotates the predicted rotations from
      camera space to world space.
      Args:
          rotations: predicted in-camera rotation quaternions (B x N x 4)
          source_cameras_to_world: transformation quaternions from
              camera-to-world matrices transposed(B x 4)
      Retures:
          rotations with appropriately applied transform to world space
      """
  
      Mq = source_cv2wT_quat.unsqueeze(1).expand(*rotations.shape)
  
      rotations = quaternion_raw_multiply(Mq, rotations)
  
      return rotations
  
imports: import torch
  import torch.nn
  import torchvision
  import numpy
  import torch
  from torch.nn.functional import silu
  from einops import rearrange, repeat
  from utils.general_utils import matrix_to_quaternion, quaternion_raw_multiply
  from utils.graphics_utils import fov2focal
label_desc: Use image node_id 10 for calling the GaussianSplatPredictor obj's underlying member method code with example usage: obj.transform_rotations(rotations, source_cv2wT_quat) and returns: rotations