我想通过向其添加随机噪声来将我用来在 tensorflow 中训练神经网络的现有数据集的大小加倍。因此,当我完成后,我将拥有所有现有示例以及所有添加了噪声的示例。我还想在转换它们时将它们交错,所以它们按以下顺序出现:示例 1 没有噪音,示例 1 有噪音,示例 2 没有噪音,示例 2 有噪音,等等。我正在努力完成这个使用数据集 API。我尝试使用 unbatch 来完成此操作:
def generate_permutations(features, labels):
return [
[features, labels],
[add_noise(features), labels]
]
dataset.map(generate_permutations).apply(tf.contrib.data.unbatch())
但我收到一条错误消息Shapes must be equal rank, but are 2 and 1
。我猜 tensorflow 正试图从我返回的那一批中制作一个张量,但是features
形状labels
不同,所以这不起作用。我可能可以通过制作两个数据集并将它们连接在一起来做到这一点,但我担心这会导致训练非常倾斜,我在一半的时间里训练得很好,突然间所有的数据都在第二次进行了新的转换一半。在输入 tensorflow 之前,如何在不将这些转换写入磁盘的情况下即时完成此操作?