當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。