【问题标题】:Create Iterator for TFRecord dataset为 TFRecord 数据集创建迭代器
【发布时间】:2021-10-26 16:24:05
【问题描述】:

我有多个要合并的 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 循环来迭代数据集。 我希望你们中的一些人能够帮助我:)

【问题讨论】:

  • 对于其他想对TFRecordDataset的记录进行操作的人,也可以调用Dataset对象的as_numpy_iterator()方法,得到一个将嵌套tf.Tensors转换为嵌套np的迭代器。数组

标签: python tensorflow tensorflow2.0 tfrecord


【解决方案1】:

找到解决方案:更新 tensorflow

【讨论】:

    猜你喜欢
    • 2011-12-12
    • 1970-01-01
    • 2022-10-08
    • 2018-11-21
    • 2018-12-24
    • 2016-04-29
    • 2011-08-23
    • 2020-02-18
    • 1970-01-01
    相关资源
    最近更新 更多