尝试将二维张量乘以一维张量,从二维张量中的特定列开始

Trying to multiply a 2d tensor by a 1d tensor, starting from a specific column in the 2d tensor

假设我有一个像

这样的二维男高音
r = tf.constant([[0],[1]])

和像

这样的二维张量
v = tf.constant([[1, 3, 4, 7, 8, 2],[5, 3, 5, 4, 7, 2]])

我希望能够通过乘以特定列的 r 来更新 v?例如,如果从第 2 列(从零开始),生成的张量将为 [[1, 3, 5, 0, 0, 0],[5, 3, 5, 4, 7, 2]]

我想出的任何解决方案都会导致以下错误

v[:, 2:] *= r[:, None]

TypeError: 'tensorflow.python.framework.ops.EagerTensor' object does not support item assignment

您必须分两步完成:

res = v[:, 2:] * r
res = tf.concat((v[:, :2], res), axis=-1)