我的张量如下:
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]]
请告诉我是否有解决办法。
答案 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]]})