class_docstr: A dataset class to generate random poses.
class_docstr_tok: ["A","dataset","class","to","generate","random","poses","."]
docstr: Returns an iterator over the dataset.
  
  Returns:
      Iterator: An iterator over the dataset.
docstr_tok: ["Returns","an","iterator","over","the","dataset",".","Returns",":","Iterator",":","An","iterator","over","the","dataset","."]
code: def __iter__(self) -> Iterator[Dict[str, torch.Tensor]]:
      """
      Returns an iterator over the dataset.
  
      Returns:
          Iterator: An iterator over the dataset.
  
      """
      while True:
          # Generate samples
          (
              rays_o,
              rays_d,
              dirs,
              mvp,
              delta_azimuth,
          ) = self.generate_samples()
          for i in range(self.internal_batch_size):
              # Yield one sample at a time from the internal batch
              yield {
                  "height": self.height,
                  "width": self.width,
                  "rays_o": rays_o[i].unsqueeze(0),
                  "rays_d": rays_d[i].unsqueeze(0),
                  "dir": dirs[i].unsqueeze(0),
                  "mvp": mvp[i].unsqueeze(0),
                  "azimuth": delta_azimuth[i].unsqueeze(0),
              }
  
file_path: NeMo/nemo/collections/multimodal/data/nerf/random_poses.py
imports: import random
  from typing import Any, Dict, Iterator, List, Optional, Tuple
  import numpy
  import torch
  import torch.nn.functional
  from torch.utils.data import IterableDataset
  from nemo.collections.multimodal.data.nerf.cameras import PinholeCamera
  from nemo.collections.multimodal.data.nerf.utils import compute_look_at_vectors, construct_poses, get_rays, get_view_direction
label_desc: Use image node_id 4 for calling the RandomPosesDataset obj's underlying member method code with example usage: obj.__iter__() without return types