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


Python tf.io.TFRecordWriter用法及代碼示例


將記錄寫入 TFRecords 文件的類。

用法

tf.io.TFRecordWriter(
    path, options=None
)

參數

  • path TFRecords 文件的路徑。
  • options (可選)指定壓縮類型、TFRecordCompressionTypeTFRecordOptions 對象的字符串。

拋出

  • IOError 如果path 無法打開寫入。
  • ValueError 如果無法從 options 確定有效的 compression_type 。

TFRecords 教程

TFRecords 是一種二進製格式,針對高吞吐量數據檢索進行了優化,通常與 tf.data 結合使用。 TFRecordWriter 用於將序列化的示例寫入文件以供以後使用。關鍵步驟是:

提前時間:

下麵給出了一個最小的例子:

import tempfile
example_path = os.path.join(tempfile.gettempdir(), "example.tfrecords")
np.random.seed(0)
# Write the records to a file.
with tf.io.TFRecordWriter(example_path) as file_writer:
  for _ in range(4):
    x, y = np.random.random(), np.random.random()

    record_bytes = tf.train.Example(features=tf.train.Features(feature={
        "x":tf.train.Feature(float_list=tf.train.FloatList(value=[x])),
        "y":tf.train.Feature(float_list=tf.train.FloatList(value=[y])),
    })).SerializeToString()
    file_writer.write(record_bytes)
# Read the data back out.
def decode_fn(record_bytes):
  return tf.io.parse_single_example(
      # Data
      record_bytes,

      # Schema
      {"x":tf.io.FixedLenFeature([], dtype=tf.float32),
       "y":tf.io.FixedLenFeature([], dtype=tf.float32)}
  )
for batch in tf.data.TFRecordDataset([example_path]).map(decode_fn):
  print("x = {x:.4f},  y = {y:.4f}".format(**batch))
x = 0.5488,  y = 0.7152
x = 0.6028,  y = 0.5449
x = 0.4237,  y = 0.6459
x = 0.4376,  y = 0.8918

此類實現 __enter____exit__ ,並且可以像普通文件一樣在 with 塊中使用。 (參見上麵的使用示例。)

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.io.TFRecordWriter。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。