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

陳立麟*_*陳立麟 3 tensorflow

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

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

但我想找到最后一个索引的最大值。输出将为“4”

Sal*_*ali 5

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)
Run Code Online (Sandbox Code Playgroud)

如果您的起始向量不包含整数,则需要更改类型。