考虑到急切执行模式中的is possible to run tf.Data.Datasets
,如何在急切执行时打开TFRecord文件?我更关心解析器编写,因为我目前正在使用dataset.make_one_shot_iterator
作为迭代器(在容器上的几个图像之间)。
答案 0 :(得分: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
希望有所帮助。