code: def load_state(self, fname: str):
          
  
          # restore order
          self.data = self.data.permute(self.inverse_data_permutations)
  
          with open(fname, "rb") as fp:
              self.batch_indices = pickle.load(fp)
              self.curr_batch_index = pickle.load(fp)
              inverse_data_permutations = np.load(fp)
              data_permutations = np.load(fp)
  
          # Right after loading the iterator state, next() should be called
          self.curr_batch_index -= 1
  
          # load previous permutations
          self.inverse_data_permutations = []
          self.data_permutations = []
  
          for bucket in range(len(self.data)):
              inverse_permutation = mx.nd.array(inverse_data_permutations[bucket])
              self.inverse_data_permutations.append(inverse_permutation)
  
              permutation = mx.nd.array(data_permutations[bucket])
              self.data_permutations.append(permutation)
  
          self.data = self.data.permute(self.data_permutations)
docs: Loads the state of the iterator from a file.
  
          :param fname: File name to load the information from.