Python Tensorflow:连接多个tf.Dataset非常慢

Python Tensorflow:连接多个tf.Dataset非常慢,python,tensorflow,tensorflow-datasets,Python,Tensorflow,Tensorflow Datasets,我在Tensorflow 1.10上 现在我不确定这是否是一个错误 我一直在尝试连接从多个tf.data.Dataset.from_生成器生成的大约100个数据集 for i in range(1, 100): dataset = dataset.concatenate( tf.data.Dataset.from_generator(gens[i], (tf.int8, tf.int32), output_shapes=(

我在Tensorflow 1.10上

现在我不确定这是否是一个错误

我一直在尝试连接从多个tf.data.Dataset.from_生成器生成的大约100个数据集

for i in range(1, 100):
        dataset = dataset.concatenate(
            tf.data.Dataset.from_generator(gens[i], (tf.int8, tf.int32), output_shapes=(
                (256, 256), (1))))
        print(i)
 print("before iterator")
 iterator = dataset.make_one_shot_iterator()
 print("after iterator")
运行
make\u one\u shot\u迭代器()
需要很长时间

有人知道怎么解决吗

编辑:

看起来像是
\u生成数据集。将\u添加到\u图(ops.get\u default\u graph())
似乎一次又一次地被调用,导致了数百万次函数调用。
(函数make_one_shot_iterator line 162)

对于这样的多个张量或生成器,运行
串联实际上不是最好的选择


更好的方法是使用
平面地图
。我确实在一段时间内更新了这个示例,以展示如何将其用于多个张量或文件

我也面临着这个问题。你成功修复了吗?你使用TF 1.10有什么特别的原因吗?@Colonder在我发布这个问题的时候,它实际上是在tensorflow的最新版本中:)@183。阿米尔:是的。我在下面编辑了一个答案,你能发布一个更清晰的答案吗?我已经创建了几个数据集(来自tfrecords),我真的很想将它们连接起来,因为按照样本的顺序对我来说很重要。如何使用平面映射连接多个数据集?如果您使用tf记录,您可以只使用tfrecord数据集并将文件名作为数组传入,但我不能这样做,因为我在每个tfrecord上应用了不同的映射,然后我要连接它们。您可以尝试从映射的tfrecords创建数组或张量,然后使用tf平面映射然后打开阵列结构。我想我用过类似的东西,但我现在找不到旧代码。