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


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


加载以前保存的数据集。

用法

tf.data.experimental.load(
    path, element_spec=None, compression=None, reader_func=None
)

参数

  • path 必需的。指向先前保存的数据集的路径。
  • element_spec 可选的。 tf.TypeSpec 对象的嵌套结构与已保存数据集的元素结构相匹配,并指定单个元素组件的类型。如果未提供,则使用与已保存数据集一起保存的 tf.TypeSpec 的嵌套结构。如果方法以图形模式执行,则需要提供此参数。
  • compression 可选的。读取数据时用于解压缩数据的算法。支持的选项是 GZIPNONE 。默认为 NONE
  • reader_func 可选的。控制如何从分片中读取数据的函数。如果存在,该函数将被跟踪并作为图形计算执行。

返回

抛出

  • FileNotFoundError 如果未指定element_spec,则保存的tf.TypeSpec的嵌套结构不能与保存的数据集一起定位。
  • ValueError 如果未指定element_spec,并且方法以图形模式执行。

示例用法:

import tempfile
path = os.path.join(tempfile.gettempdir(), "saved_data")
# Save a dataset
dataset = tf.data.Dataset.range(2)
tf.data.experimental.save(dataset, path)
new_dataset = tf.data.experimental.load(path)
for elem in new_dataset:
  print(elem)
tf.Tensor(0, shape=(), dtype=int64)
tf.Tensor(1, shape=(), dtype=int64)

请注意,要加载以前保存的数据集,您需要指定 element_spec - 已保存数据集元素的类型签名,可以通过 tf.data.Dataset.element_spec 获得。存在此要求,因此加载数据集的形状推断不需要执行 I/O。

如果使用了对已保存数据集进行分片的默认选项,则在加载时将保留已保存数据集的元素顺序。

reader_func 参数可用于指定从各个分片加载元素的自定义顺序。 reader_func 预计将采用单个参数——一个数据集的数据集,每个数据集包含一个分片的元素——并返回一个元素的数据集。例如,分片的顺序可以在加载时打乱如下:

def custom_reader_func(datasets):
  datasets = datasets.shuffle(NUM_SHARDS)
  return datasets.interleave(lambda x:x, num_parallel_calls=AUTOTUNE)

dataset = tf.data.experimental.load(
    path="/path/to/data", ..., reader_func=custom_reader_func)

相关用法


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