批量写入TFRecords

2024-05-23 19:53:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现的所有关于TFRecords的文档都是一个接一个地生成tf.train.Example()s,并使用

writer = tf.python_io.TFRecordWrite(path)
ex = generate_example(features)  # Returns tf.train.Example() instance
writer.write(ex.SerializeToString())

由于我处理的是非常大的数据,我知道单独编写示例会付出高昂的间接费用

有没有办法一次将多个tf.train.Example()写入TFRecord?在


Tags: pathinstance文档ioexampletftfrecordstrain
1条回答
网友
1楼 · 发布于 2024-05-23 19:53:20

由于TFRecord只是原始数据的序列化版本,与一些额外的信息捆绑在一起,所以我不确定您是否能够完成您所要求的。我想到了一些问题:

  1. 你应该怎么写一个文件多个例子 同时?在
  2. 如果你成功地完成了上面的目标(处理所有的并发问题等),tensorflow仍然会以同样的方式阅读它们:连续阅读,所以我不确定这里有什么好处。在
  3. 此外,TFRecord应该编写一次并多次使用。这意味着他们不是任何培训的产物,也不是将来可能改变的过程。它们应该是你模型的输入。所以,不管怎么努力去创造它们,这都是一次性的工作。你的数据有多大。在这种情况下,我认为在培训过程中处理这些问题要比在TFRecords中编写它们要困难得多。在
  4. 我能想到的一个(天真的)解决方法是同时创建多个TFRecord文件。例如,通过这种方式可以加快TFRecord的写入速度,如果这是困扰您的问题。然后可以使用记录列表而不是单个TFRecord文件来读取它们。当然,在这种情况下,tensorflow将再次连续读取它们。在

相关问题 更多 >