def sample_forward_transitions(self, batch_size, batch_info, forward_steps: int,<EOL>discount_factor: float) -> Transitions:
indexes = self.backend.sample_batch_transitions(batch_size, forward_steps=forward_steps)<EOL>transition_tensors = self.backend.get_transitions_forward_steps(<EOL>indexes, forward_steps=forward_steps, discount_factor=discount_factor<EOL>)<EOL>return Trajectories(<EOL>num_steps=batch_size,<EOL>num_envs=self.backend.num_envs,<EOL>environment_information=None,<EOL>transition_tensors={k: torch.from_numpy(v) for k, v in transition_tensors.items()},<EOL>rollout_tensors={},<EOL>extra_data={<EOL>'<STR_LIT>': forward_steps<EOL>}<EOL>).to_transitions()<EOL>
Sample transitions from replay buffer with _forward steps_.
That is, instead of getting a transition s_t -> s_t+1 with reward r,
get a transition s_t -> s_t+n with sum of intermediate rewards.

Used in a variant of Deep Q-Learning