如何查找Tensorflow最大值索引,但该值是重复的

时间:2017-07-15 07:25:30

标签: tensorflow

张量数组是: array = [1,1,0,1,1,0]

如果我使用tf.argmax(),它只能找到第一个索引。 output => " 0"

但我希望找到最后一个索引的最大值。 输出将是" 4"

1 个答案:

答案 0 :(得分:2)

tf.argmax不会返回第一个最大值。如果是平局,可以退回任何东西:

  

请注意,在绑定的情况下,返回值的标识不是   保证。

所以像reverse和argmax这样的答案是错误的。

我可以看到的一个选项是:

import tensorflow as tf
a = tf.constant([5, 3, 3, 5, 4, 2, 5, 1])
b = tf.argmax(tf.multiply(
    tf.cast(tf.equal(a, tf.reduce_max(a)), tf.int32),
    tf.range(1, a.get_shape()[0] + 1)
))
with tf.Session() as sess:
    print sess.run(b)

如果起始矢量不是由整数组成,则需要更改类型。