code: def reset(self):
          
          self.curr_batch_index = 0
          if self.permute:
              # shuffle batch start indices
              random.shuffle(self.batch_indices)
  
              # restore the data permutation
              self.data = self.data.permute(self.inverse_data_permutations)
  
              # permute the data within each batch
              self.data_permutations, self.inverse_data_permutations = get_permutations(self.data.get_bucket_counts())
              self.data = self.data.permute(self.data_permutations)
docs: Resets and reshuffles the data.