code: def __init__(
      self,
      num_steps,
      num_processes,
      obs_shape,
      action_space,
      state_size,
  ):
      self.observations = torch.zeros(
          num_steps + 1, num_processes, *obs_shape
      )
      self.states = torch.zeros(
          num_steps + 1, num_processes, state_size
      )
      self.rewards = torch.zeros(num_steps, num_processes, 1)
      self.value_preds = torch.zeros(num_steps + 1, num_processes, 1)
      self.returns = torch.zeros(num_steps + 1, num_processes, 1)
      self.action_log_probs = torch.zeros(num_steps, num_processes, 1)
  
      # Discrete action space only for now...
      self.actions = torch.zeros(num_steps, num_processes, 1)
      self.actions = self.actions.long()
  
      self.masks = torch.ones(num_steps + 1, num_processes, 1)
  
      self.num_steps = num_steps
      self.step = 0
  
file_path: SerpentAI/serpent/machine_learning/reinforcement_learning/ppo/rollout_storage.py
imports: import torch
  from torch.utils.data.sampler import BatchSampler, SubsetRandomSampler
label_desc: Use image node_id 1 to create a new RolloutStorage object  with example: obj = RolloutStorage(num_steps, num_processes, obs_shape, action_space, state_size)