import tensorflow as tf
from time import time
dataset = tf.data.Dataset.range(10000)
dataset = dataset.map(lambda x: sum([x**i for i in range(1000)]))
dataset = dataset.cache()
# The first time reading through the data will generate the data using
# `range` and `map`.
tik = time()
list(dataset.as_numpy_iterator())
tok = time()
round(tok-tik,2)
5.57
# Subsequent iterations read from the cache.
tik = time()
list(dataset.as_numpy_iterator())
tok = time()
round(tok-tik,2)
1.2