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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。