在张量流中,如何将张量的一行重置为零?

In tensorflow, how do I reset a row of a tensor to zeros?

我正在研究 Tensorflow 中的递归神经网络。 我有一个张量 H,它存储一批输入的隐藏状态。

假设 H 的大小为 a*b。如何将列表中给定的 H 的行重置为 zeros

例如如果列表是 [1, 2],我只想将 H 的那些行重置为 zeros,而其他行则保持不变。

您确定要使用 tensorflow 张量执行此操作吗?我不确定您的确切用例是什么,但我想不出您需要这样做的理由。您应该能够准确地将您需要的内容传递到 tf.placeholder.

无论如何,为了回答你的问题,你可以将你想要重置的张量乘以一个常量张量,除了你需要重置的地方之外,每个地方都为 1。

例如:

reset_constant = tf.constant([[1,1,1],
                              [1,1,1],
                              [0,0,0], #reset this row
                              [1,1,1]], dtype="float")
tensor_with_reset_row = tf.mul(tensor_to_reset, reset_constant)