我有以下设置:

  • 我使用噪声函数在输入管道中通过 tf.data.dataset.map 预处理我的数据集

  • 由于我想在运行时在训练和测试集之间切换,我使用带有字符串句柄的可输入迭代器,它工作正常

问题:

我现在想通过逐步增加每批次后的噪音水平来训练我的模型 . 据我所知,这只能通过Initializable迭代器(我将通过占位符提供新的噪声级别)来实现,这不是一个选项,因为我必须在每个批次之后初始化迭代器,因此我永远不会提前我的数据集 . 此外,我认为 tf.data.dataset.map 将函数(具有特定的噪声级别)应用于整个数据集 .

问题:我希望从像 prefetchprefetch_to_device 这样的数据集管道功能中获益,并且只使用GPU进行实际训练,而所有预处理都应在我的CPU上完成 . 我遇到的问题似乎迫使我在输入管道之外应用噪声,这会严重损害整个管道的效率 .

有没有人看到这个出路? (我是Tensorflow的新手,所以也许我正在监督这个问题的明显答案)