gpt4 book ai didi

tensorflow - 访问 tf.data.Dataset 的索引以删除和附加数据元素

转载 作者:行者123 更新时间:2023-12-05 02:59:46 26 4
gpt4 key购买 nike

我目前正在进行一个研究项目,在这个项目中,我必须在一些时期后追加我的训练集,并在评估后从测试集中删除一些样本。目前我无法访问 tfrecord 文件中的记录(放置在特定索引处)以删除或追加。由于 tfrecords 提供非常快的训练,所以我避免使用生成器。以这种方式访问​​ tfrecord 文件有什么建议吗?

最佳答案

I have to append my training set after some epochs

您可以使用 repeat(n) 将数据集重复 n 个时期,然后使用 concatenate(new_dataset) 附加一些额外的数据。因此,例如,为了在 15 个时期后追加新数据,我们可以这样做:

dataset = tf.data.TFRecordDataset('filepath.tfrecord')
new_data = tf.data.TFRecordDataset('filepath_of_records_to_append.tfrecord') # or any other dataset from generator or whatever!

dataset = dataset.repeat(15).concatenate(new_data)

and delete some samples from test set

您不能使用 tf.data API 从原始 tfrecord 文件中轻松删除(实际上您必须编写一个新的 tfrecord 文件并省略记录)所以也许您会发现构建一个有用的tf.data 数据集并忽略或跳过你想省略的记录?这要简单得多,可以使用 take()skip() 来完成。

因此,例如,如果我想跳过索引 4、7、8、9 和 10 处的记录,我可以执行以下操作:

dataset = tf.data.TFRecordDataset('filepath.tfrecord')

dataset = dataset.take(4).skip(1).take(2).skip(4)

关于tensorflow - 访问 tf.data.Dataset 的索引以删除和附加数据元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57550028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com