在急切执行时解析TFRecord

问题描述 投票:1回答:1

考虑到is possible to run tf.Data.Datasets处于急切的执行模式,我应该如何在急切的执行中打开TFRecord文件?我更关心解析器编写,因为我目前正在使用dataset.make_one_shot_iterator作为迭代器(在我的容器上的几个图像之间)。

tensorflow tfrecord
1个回答
4
投票

在TensorFlow 1.8之后,您可以自然地在启用了急切执行的情况下迭代tf.data.Dataset对象。

ds = tf.data.TFRecordDataset(...).map(...).batch(...)
for x in ds:
  print(x)

make_one_shot_iterator也将工作(继续努力保持与图形构造的等效代码兼容):

ds = tf.data.TFRecordDataset(...).map(...).batch(...)
itr = ds.make_one_shot_iterator()
for x in itr:
  print(x)

但是,在旧版本的TensorFlow中(急切执行是一个新引入的功能,因而不那么烘焙),您必须使用以下内容将数据集包装在tf.contrib.eager.Iterator中:

tfe  tf.contrib.eager
ds = tf.data.TFRecordDataset(...).map(...).batch(...)
for x in tfe.Iterator(ds):
  print(x)

请参阅与1.7版本相关的这些资源: - Notebook - RNN example

希望有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.