我有多个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