Кэш набора в TensorFlow
Если набор полностью помещается
в память и его содержимое
не меняется, метод cache
сохраняет примеры после первого
прохода. Повторный обход читает
уже сохранённые значения.
Создадим набор из трёх чисел, закэшируем его и дважды соберём элементы в списки:
import tensorflow as tf
values = tf.data.Dataset.from_tensor_slices(
[1, 2, 3]
)
cached = values.cache()
first = [int(x) for x in cached]
second = [int(x) for x in cached]
print(first)
print(second)
# выведет [1, 2, 3] и снова [1, 2, 3]
Тот же порядок сохраняется при поэлементном выводе:
import tensorflow as tf
values = tf.data.Dataset.from_tensor_slices(
[1, 2, 3]
)
cached = values.cache()
for item in cached:
print(item.numpy())
# выведет 1, 2 и 3 по строкам
Из ряда [4, 5, 6]
соберите набор, сохраните
его в памяти и дважды
подряд соберите все
элементы в списки.
Выведите оба списка.
Создайте набор из [10, 20],
закрепите его в памяти и
выведите каждое число
отдельной строкой.
Соберите набор из [1, 2, 3, 4],
сохраните содержимое после
первого обхода и сравните
два списка, полученных
при двух последовательных
обходах.