当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.data.experimental.SqlDataset.cache用法及代码示例


用法

cache(
    filename='', name=None
)

参数

  • filename tf.string 标量 tf.Tensor ,表示文件系统上用于缓存此数据集中元素的目录名称。如果未提供文件名,则数据集将缓存在内存中。
  • name (可选。) tf.data 操作的名称。

返回

  • Dataset 一个Dataset

缓存此数据集中的元素。

第一次迭代数据集时,其元素将缓存在指定文件或内存中。随后的迭代将使用缓存的数据。

注意:为了最终确定缓存,必须对输入数据集进行整体迭代。否则,后续迭代将不会使用缓存数据。

dataset = tf.data.Dataset.range(5)
dataset = dataset.map(lambda x:x**2)
dataset = dataset.cache()
# The first time reading through the data will generate the data using
# `range` and `map`.
list(dataset.as_numpy_iterator())
[0, 1, 4, 9, 16]
# Subsequent iterations read from the cache.
list(dataset.as_numpy_iterator())
[0, 1, 4, 9, 16]

缓存到文件时,缓存的数据将在运行中持续存在。即使是数据的第一次迭代也会从缓存文件中读取。在调用 .cache() 之前更改输入管道将无效,直到删除缓存文件或更改文件名。

dataset = tf.data.Dataset.range(5)
dataset = dataset.cache("/path/to/file")
list(dataset.as_numpy_iterator())
# [0, 1, 2, 3, 4]
dataset = tf.data.Dataset.range(10)
dataset = dataset.cache("/path/to/file")  # Same file!
list(dataset.as_numpy_iterator())
# [0, 1, 2, 3, 4]

注意: cache将在数据集的每次迭代期间产生完全相同的元素。如果您希望随机化迭代顺序,请确保调用shuffle 调用cache.

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.data.experimental.SqlDataset.cache。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。