Использование .cache () с подготовкой данных в python - PullRequest
0 голосов
/ 20 июня 2020

Может ли кто-нибудь объяснить, какова цель .cache() в этой строке при использовании tensorflow_datasets

train_batches = train_examples.cache().shuffle(num_examples // 4).map(format_image).batch(32).prefetch(1)

1 Ответ

2 голосов
/ 21 июня 2020

Как следует из названия, он кэширует образцы в памяти (или на диске, если указано имя файла). Например, если train_examples включает дорогостоящую предварительную обработку, предварительную обработку не нужно повторять для каждой эпохи за счет увеличения потребления памяти.

Обратите внимание, что из-за порядка все методы вызываются после .cache() по-прежнему выполняются каждую эпоху. В зависимости от ситуации может быть выгодно позвонить по номеру .map() перед .cache(). Однако перетасовка и пакетирование обычно должны вызываться в последнюю очередь.

Подробности см. В официальной документации .

...