尝试将二维张量乘以一维张量,从二维张量中的特定列开始
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)
假设我有一个像
这样的二维男高音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)