首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于删除和附加数据元素的tf.data.Dataset访问索引

用于删除和附加数据元素的tf.data.Dataset访问索引
EN

Stack Overflow用户
提问于 2019-08-19 03:07:03
回答 1查看 4.5K关注 0票数 3

我目前正在做一个研究项目,在这个项目中,我必须在一些时代之后附加我的训练集,并在评估后从测试集中删除一些样本。目前,我无法访问tfrecord文件中的记录(放置在特定索引下)以删除或追加记录。因为tfrecords提供非常快的训练,所以我避免使用发电机。有建议以这种方式访问tfrecord文件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-19 06:30:23

我得把我的训练集附加在几个时代之后

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

代码语言:javascript
复制
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)

并从测试集中删除一些样本。

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

因此,例如,如果我想跳过索引4、7、8、9和10的记录,我可以这样做:

代码语言:javascript
复制
dataset = tf.data.TFRecordDataset('filepath.tfrecord')

dataset = dataset.take(4).skip(1).take(2).skip(4)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57550028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档