如何在Tensorflow中乘以多维张量的一维?

时间:2019-02-28 05:38:23

标签: python tensorflow

我的张量如下:

y = tf.placeholder(tf.float32, [None, 3],name="output")

我想将3维张量的最后一个相乘。
我已经尝试过:

outputs_with_multiplier = y
outputs_with_multiplier[-1] = tf.multiply(outputs_with_multiplier[-1],tf.constant(2.0))

我收到以下错误:

  outputs_with_multiplier[-1] = tf.multiply(outputs_with_multiplier[-1],tf.constant(2.0))
TypeError: 'Tensor' object does not support item assignment

我检查了以下问题以供参考,但我发现它们没有帮助,可能是因为我不理解它们。
1)Tensorflow - matmul of input matrix with batch data
2)Tensor multiplication in Tensorflow

请帮助我增加张量维度,使其平滑运行。

例如,如果这是我的y = [[1,2,3],[2,3,4],[3,4,5],[2,5,7],[8,9,10],[0,3,2]],那么我想使其成为outputs_with_multiplier = [[1,2,6],[2,3,8],[3,4,10],[2,5,14],[8,9,20],[0,3,4]]

请告诉我是否有解决办法。

1 个答案:

答案 0 :(得分:2)

您无法进行项目分配,但可以创建新的Tensor。关键是将前两列乘以1,将第三列乘以2。

x = tf.placeholder(tf.float32, [None, 3], name="output")
y = tf.constant([[1.0, 1.0, 2.0]])
z = tf.multiply(x, y)

sess = tf.Session()
sess.run(z, feed_dict={x: [[1,2,3],[2,3,4],[3,4,5],[2,5,7],[8,9,10],[0,3,2]]})