code: def get_movielens_iter(filename, batch_size):
      
      logging.info("Preparing data iterators for " + filename + " ... ")
      user = []
      item = []
      score = []
      with open(filename, 'r') as f:
          num_samples = 0
          for line in f:
              tks = line.strip().split('::')
              if len(tks) != 4:
                  continue
              num_samples += 1
              user.append((tks[0]))
              item.append((tks[1]))
              score.append((tks[2]))
      # convert to ndarrays
      user = mx.nd.array(user, dtype='int32')
      item = mx.nd.array(item)
      score = mx.nd.array(score)
      # prepare data iters
      data_train = {'user': user, 'item': item}
      label_train = {'score': score}
      iter_train = mx.io.NDArrayIter(data=data_train,label=label_train,
                                     batch_size=batch_size, shuffle=True)
      return mx.io.PrefetchingIter(iter_train)
docs: Not particularly fast code to parse the text file and load into NDArrays.
      return two data iters, one for train, the other for validation.