首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >混合多重tf.data.Dataset?

混合多重tf.data.Dataset?
EN

Stack Overflow用户
提问于 2018-04-24 06:07:27
回答 2查看 971关注 0票数 1

我有三个数据集D1、D2、D3,它们输出相同类型的数据。我要做的是从一个独特的管道随机输出D1、D2或D3。我尝试使用tf.data.Dataset.zip((D1, D2, D3)),但是我不知道如何将它的输出扁平化,以便对其进行洗牌,然后像D1_element, D3_element,D1_element , D2_element ...这样的输出就是一个很小的例子:

代码语言:javascript
复制
import tensorflow as tf

D1 = tf.data.Dataset.range(1,5)
D2 = tf.data.Dataset.range(5,10)
D3 = tf.data.Dataset.range(10,15)

zip = tf.data.Dataset.zip((D1,D2,D2))
...
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-24 07:45:33

如果有人感兴趣,我找到了以下解决方案:

代码语言:javascript
复制
import tensorflow as tf

def stack(*inputs):
    return tf.stack(inputs)

D1 = tf.data.Dataset.range(1,5)
D2 = tf.data.Dataset.range(5,10)
D3 = tf.data.Dataset.range(10,15)

D = tf.data.Dataset.zip((D1,D2,D3))
D = D.map(stack)
D = D.apply(tf.contrib.data.unbatch())
D = D.shuffle(10, seed=0)
D = D.batch(3)
D = D.prefetch(1)

it = D.make_one_shot_iterator()
next_element = it.get_next()

with tf.Session() as sess:
    print sess.run(next_element)
票数 2
EN

Stack Overflow用户

发布于 2022-01-08 14:55:47

使用tf.data.Dataset.concatenate创建一个新的数据集:

代码语言:javascript
复制
D = D1.concatenate(D2).concatenate(D3)

看看Is there a way to stack two tensorflow datasets?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49994496

复制
相关文章

相似问题

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