def batch_gen(download_url, expected_byte, vocab_size, batch_size, skip_window, visual_fld): local_dest = 'data/text8.zip' utils.download_one_file(download_url, local_dest, expected_byte) words = read_data(local_dest) dictionary, _ = build_vocab(words, vocab_size, visual_fld) index_words = convert_words_to_index(words, dictionary) del words # to save memory single_gen = generate_sample(index_words, skip_window) while True: center_batch = np.zeros(batch_size, dtype=np.int32) target_batch = np.zeros([batch_size, 1]) for index in range(batch_size): center_batch[index], target_batch[index] = next(single_gen) yield center_batch, target_batch