code: def train_batch(self, batch_info: BatchInfo):
          
          batch_info['sub_batch_data'] = []
  
          self.on_policy_train_batch(batch_info)
  
          if self.settings.experience_replay > 0 and self.env_roller.is_ready_for_sampling():
              if self.settings.stochastic_experience_replay:
                  experience_replay_count = np.random.poisson(self.settings.experience_replay)
              else:
                  experience_replay_count = self.settings.experience_replay
  
              for i in range(experience_replay_count):
                  self.off_policy_train_batch(batch_info)
  
          # Even with all the experience replay, we count the single rollout as a single batch
          batch_info.aggregate_key('sub_batch_data')
docs: Single, most atomic 'step' of learning this reinforcer can perform