如何从该行的所有元素中减去2D张量的每一行的最大元素

时间:2017-04-01 04:22:34

标签: python tensorflow

最初,我用全局最大值询问了这一点,但是当您放入尺寸时,只减去tf.reduce_max()的解决方案不起作用。我想要类似的东西 mytensor - tf.reduce_max(mytensor, 1) 但这会产生尺寸误差。

我无法使用 tf.constant(value = tf.reduce_max(mytensor,1) , shape = mytensor.get_shape()[1]) 具有指定值,因为reduce_max()的输出是张量而不是常量。

1 个答案:

答案 0 :(得分:1)

对于全局最大值,您可以执行以下操作:

import tensorflow as tf
inp = tf.constant([[1, 2, 3],[4,5,6]
    ])
res=tf.reduce_max(inp)
res1=inp-res
sess = tf.Session()
print(sess.run(res))
print(sess.run(res1)) 

然后res是6而res1是

[[-5 -4 -3]
 [-2 -1  0]]

如果你想减去每一行中的最大元素,这将完成工作:

import tensorflow as tf
inp = tf.constant([[1, 2, 3],[6,6,6]
    ])
res=tf.reduce_max(inp,1)
res1=inp-tf.reshape(res,[-1,1])
sess = tf.Session()
print(sess.run(res1)) 

然后res1

 [[-2 -1  0]
 [ 0  0  0]]