为TFRecord数据集创建迭代器



我有多个TFRecord数据集,我想合并。这意味着,这些数据集中的每一个都包含一个特性,我想将其合并到一个TFRecord中,该TFRecord包含所有的特性。

遍历所有数据集并提取每个记录的特征,最后编写包含所有特征的新记录,工作,但我有一些挣扎创建一个有效的脚本。

简单地说,我的问题是:

下面的代码可以工作。

tfrecord = tf.data.TFRecordDataset("/my/file.tfrecord")
for record in tfrecord:
#extract feature

但是下面的代码给了我一个错误。

tfrecord = tf.data.TFRecordDataset("/my/file.tfrecord")
iterator = iter(tfrecord)
item = iterator.next()
print(item)
Error:
.../python3.8/site-packages/tensorflow/python/data/ops/iterator_ops.py", line 544, in __del__
AttributeError: 'NoneType' object has no attribute 'eager_mode'

然而,有趣的是它确实打印了第一条记录,只是它也抛出了一个错误。

我真的只想要一个迭代器对象,这样我就可以通过使用next()函数而不是for循环来迭代数据集。我希望你们中的一些人能够帮助我:)

解决方案:更新tensorflow

最新更新