我有以下设置:
我在输入管道中通过tf.data.dataset.map
由于我想在运行时在训练和测试集之间进行切换,因此我使用了带有字符串句柄的可填充迭代器,该迭代器效果很好
问题:
我现在想通过在每个批次之后逐渐增加噪声水平 来训练我的模型。据我所知,这只能通过可初始化的迭代器来实现(我将通过占位符提供新的噪声水平),这不是一个选择,因为我必须在每次批处理之后都要初始化迭代器,因此我永远都不会前进我的数据集。另外,我认为tf.data.dataset.map
将函数(具有特定的噪声级别)应用于整个数据集。
问题:我想从prefetch
和prefetch_to_device
之类的数据集管道功能中受益,并且仅将GPU用于实际训练,而所有预处理都应在我的CPU上完成。我似乎已经遇到的问题迫使我将噪声应用到输入管道之外,这会严重损害整个管道的效率。
有人看到这样的出路吗? (我是Tensorflow的新手,所以也许我正在监督这个问题的明显答案)