gpt4 book ai didi

Tensorflow : tf. argmax() 作为预测还是最大值?

转载 作者:行者123 更新时间:2023-12-04 14:36:02 27 4
gpt4 key购买 nike

我正在学习 tensorflow,在各种示例中,我已经看到我们使用 tf.argmax(logits, 1) 从 logits 中获得预测.据我了解logits是概率值和 tf.argmax()会给索引指定轴上的最大值。但是,我们如何使用索引代替概率值。我们不应该使用最大值作为预测吗?

但我已经看到上面的代码工作正常。我确定我在这里遗漏了一些基础知识。任何人都可以用一个例子来澄清这一点吗?

最佳答案

平时logits是分类网络的输出张量,其内容是未归一化(未在 0 和 1 之间缩放)的概率。
tf.argmax为您提供沿指定轴的最大值索引。

您可以转换 logits到伪概率(这只是一个张量,其值总和为 1)并将其作为输入提供给 argmax:

top = tf.argmax(tf.nn.softmax(logits), 1)

但最终,结果与直接输入未归一化的概率相同:
top = tf.argmax(logits, 1)

但是,您必须使用 argmax 才能了解网络为该输入预测的类别,这是唯一的方法,您不能仅使用概率(归一化或非归一化)。

想想像这样的 logits 张量:
logits = [ [ 10, 500, -1, 0.5, 12 ] ]

张量形状为 [1, 5]。只需查看张量值,您就可以轻松理解置信度最高的类是与位置 1 相关联的类,值为 500。

如何提取最高值的位置?你必须使用 argmax:
top = tf.argmax(logits, 1)

一旦执行,它将返回值 1

概括:
logits 的值为 Scores , 索引为 Classes .通过使用 argmax() ,您可以获得predicted class

关于Tensorflow : tf. argmax() 作为预测还是最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51114238/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com