如何在张量流中洗牌张量?错误:没有为操作 'RandomShuffle' 定义梯度

Ann*_*nny 4 python shuffle tensor

存在三个异构网络。在处理结束时,我需要在张量中重建最终的正负样本。我需要洗牌。我使用“tf.random_shuffle”方法,错误提示:没有为操作'Random Shuffle'定义梯度。但我需要渐变。如果我不使用“tf.random_shuffle”方法,我想人为地shuffle它们,我该如何操作它们?

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

Chr*_*alm 5

这是一个解决方法:

tf.gather(batch, tf.random.shuffle(tf.range(tf.shape(batch)[0])))
Run Code Online (Sandbox Code Playgroud)

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