TensorFlow Dataset的函数cache()和prefetch()是干什么的?

问题描述 投票:1回答:1

我是按照TensorFlow的 图像分割 教程。其中有以下几行字。

train_dataset = train.cache().shuffle(BUFFER_SIZE).batch(BATCH_SIZE).repeat()
train_dataset = train_dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
  1. 什么是... cache() 功能做什么?该 公文 是很晦涩的,自称。

缓存这个数据集中的元素。

  1. 什么是 prefetch() 功能做什么?该 公文 又是相当晦涩的。

创建一个Dataset,从这个数据集中预取元素。

tensorflow caching dataset tensorflow-datasets prefetch
1个回答
1
投票

tf.data.Dataset.cache 变换可以将数据集缓存在内存或本地存储上。这将节省一些操作(如文件打开和数据读取),避免在每个epoch期间执行。下一个纪元将重用缓存变换所缓存的数据。

你可以找到更多关于 cache 在张量流中 此处.

Prefetch 与训练步骤的预处理和模型执行重叠。当模型执行训练步骤s时,输入管道正在读取步骤s+1的数据。这样做可以将步骤时间减少到训练和提取数据所需时间的最大值(而不是总和)。

您可以找到更多关于 prefetch 在张量流中 此处.

希望能回答你的问题。快乐学习。

© www.soinside.com 2019 - 2024. All rights reserved.