code: def load_pointcloud_ply(
      filename: str, header_size: int = 8
  ) -> torch.Tensor:
      r"""Utility function to load from disk a pointcloud in PLY format.
  
      Args:
          filename: the path to the pointcloud.
          header_size: the size of the ply file header that will
            be skipped during loading.
  
      Return:
          tensor containing the loaded point with shape :math:`(*, 3)` where
          :math:`*` represents the number of points.
      """
      if not isinstance(filename, str) and filename[-3:] == ".ply":
          raise TypeError(
              f"Input filename must be a string in with the .ply  extension. Got {filename}"
          )
      if not os.path.isfile(filename):
          raise ValueError("Input filename is not an existing file.")
      if not (isinstance(header_size, int) and header_size > 0):
          raise TypeError(
              f"Input header_size must be a positive integer. Got {header_size}."
          )
      # open the file and populate tensor
      with open(filename) as f:
          points = []
  
          # skip header
          lines = f.readlines()[header_size:]
  
          # iterate over the points
          for line in lines:
              x_str, y_str, z_str = line.split()
              points.append(
                  (
                      torch.tensor(float(x_str)),
                      torch.tensor(float(y_str)),
                      torch.tensor(float(z_str)),
                  )
              )
  
          # create tensor from list
          pointcloud: torch.Tensor = torch.tensor(points)
          return pointcloud
  
label_desc: Use image node_id 2 for calling a global function with example usage: load_pointcloud_ply(filename, header_size) and returns: pointcloud