如何在张量流中打乱张量?错误:没有为“ RandomShuffle”操作定义梯度

时间:2019-04-16 05:55:40

标签: python shuffle tensor

存在三个异构网络。在处理的最后,我需要重构张量中的最终正样本和负样本。我需要洗牌。我使用“ tf.random_shuffle”方法,错误提示:“ Random Shuffle”操作未定义渐变。但是我需要渐变。如果我不使用“ tf.random_shuffle”方法,则想人为地对其进行洗牌,该如何操作?

现在,我使用“ tf.map_fn”方法来简单地交替使用正负组合,一个正负一个,然后是一个正负一个,依此类推。但这仍然是样本的常规组合,以及如何对样本进行混洗?

1 个答案:

答案 0 :(得分:0)

这是一种解决方法:

tf.gather(batch, tf.random.shuffle(tf.range(tf.shape(batch)[0])))

[https://github.com/tensorflow/tensorflow/issues/6269#issuecomment-465850464][1]