【发布时间】:2017-08-30 09:00:10
【问题描述】:
我正在尝试使用 the from_generator interface for the Dataset API 将多个“轮”输入注入到图表中。
在我的first attempt 上,我使用repeat() function 使生成器连续运行3 次。但是,batch_join call 的批量大小不是每轮迭代次数的偶数倍(批量大小为 3 的 10 次迭代),来自不同“轮”/“时期”的数据" 最终在同一批次中(取决于处理张量的顺序;图中存在一些并行性)。
在我的 second attempt 上,我尝试在每个 epoch 完成后重新运行迭代器。但是,只要tf.errors.OutOfRangeError is thrown,所有后续对sess.run() on the output of the batch call 的调用都会再次抛出OutOfRangeError,即使在rerunning the iterator's initializer 之后也是如此。
我想将多轮输入连续注入到图形中,而不是像第一个示例那样让它们重叠(例如,在批处理选项上使用 allow_smaller_final_batch)。我在自定义 Tensorflow 分支中实例化的一些内核重启起来非常昂贵,例如mmaping 一个 O(10gb) 的文件,所以我想以某种方式充分利用这两个世界。
【问题讨论】:
-
请添加一个小的可运行示例来显示您的输入管道,以便我们重现您的问题
-
这应该可以在 Tensorflow 存储库的主分支上运行,这对于数据集的 from_iterator 函数是必需的。如果此示例不适用于该版本,我可以修复它。
标签: tensorflow