PickeledSequence allows you to prepare data for training before hand and run training after on another machine.
What can I say... It is Amazing.
myseq_pickled = PickeledSequence(pickles_dir="/tmp/", batches_per_pickle=10)
myseq_pickled.save_pickles(myseq,
use_multiprocessing=True, shuffle=True, workers=4, max_queue_size=4, epochs=10,
pickle_size=3, compress=True)
myseq_pickled = PickeledSequence(pickles_dir="pickles/", batches_per_pickle=10)
model.fit_generator(generator=myseq_pickled)