Tensorflow和Keras预测阈值

电子书

TF默认将输入图像分类为某个类别的阈值是多少?

例如,假设我有3类012,和用于图像中的标签是独热编码,如下所示:[1, 0, 0],这意味着该图像具有0类的标签。

现在,当模型在softmax之后输出这样的预测时:[0.39, 0.56, 0.05]TF是否使用0.5作为阈值,因此它预测的类别是1类?

如果所有预测都低于0.5,如[0.33, 0.33, 0.33]TF会说结果如何,该怎么办?

是否有任何方法可以指定一个新的阈值(例如0.7)并确保TF表示如果没有任何类别预测高于该阈值,则预测是错误的?

在网络不确定类的情况下,该逻辑是否还会延续到推理阶段,否则它将拒绝对图像进行分类?

Desertnaut

当模型在softmax之后输出这样的预测时:[0.39, 0.56, 0.05]TF是否使用0.5作为阈值,因此它预测的类别是1类?

不。这里没有任何门槛。Tensorflow(以及其他任何框架)将只获取最大的一个(argmax);1即使概率输出为,此处的结果(类)也将相同[0.33, 0.34, 0.33]

您似乎错误地认为,概率值0.5在3类分类问题中具有某些特殊意义。没有:0.5的概率值仅在二进制分类设置中才是“特殊的” 就此而言,是平衡的)。n-class设置中,相应的“特殊”值是1/n(此处为0.33),根据定义,在概率向量中总会有一些条目大于或等于该值。

如果所有预测都低于0.5,如[0.33, 0.33, 0.33]TF会说结果如何,该怎么办?

正如已经暗示的那样,在n> 2的n类问题中,所有概率都低于0.5的情况并不奇怪或令人意外。

现在,如果所有概率恰好相等,如您所展示的示例中所示(尽管在实践中极不可能,但是至少在理论上,这个问题是正确的),理想情况下,这种联系应该随机解决(即随机选择一个类) ); 实际上,由于通常通过argmaxNumpy方法处理此阶段,因此预测将是头等舱(即class 0),这不难证明:

import numpy as np
x = np.array([0.33, 0.33, 0.33])
np.argmax(x)
# 0

由于Numpy如何处理此类情况-从argmaxdocs中

在多次出现最大值的情况下,返回对应于第一次出现的索引。

下一个问题:

有没有办法指定一个新的阈值,例如0.7,并确保TF表示如果没有类别预测高于该阈值,则预测是错误的?

不在Tensorflow(或任何其他框架)本身中,但这总是可以在推理过程中的后处理阶段完成:无论分类器实际返回什么,总是可以添加一些额外的逻辑,从而每当最大概率值小于阈值时,您的系统(即您的模型加上后处理逻辑)都会返回类似“我不知道/不确定/我无法回答”的信息。但这又是Tensorflow(或使用的任何其他框架)和模型本身的外部,它只能在推断期间使用,不能在推断期间使用 在训练过程中(无论如何,在训练过程中这没有意义,因为在训练过程中仅使用预测的课堂概率,而不是硬课堂)。

实际上,几年前,我们已经在一个玩具项目中实现了这样的后处理模块,该模块是一种在线服务,可以根据图像对狗的比赛进行分类:当模型返回的最大概率小于阈值时(就是这种情况) ,例如,当模型显示的是猫而不是狗的图像时,系统被编程为回答“您确定这是狗这个问题,而不是被迫在模型中做出预测。预定义的狗比赛...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有不同形状的X和y的Tensorflow keras时间序列预测

来自分类Dev

为什么使用 keras 和 tensorflow 训练成功并预测失败?

来自分类Dev

Keras / Tensorflow预测:数组形状错误

来自分类Dev

预测中使用的阈值

来自分类Dev

在 Keras 中预测和评估指标

来自分类Dev

tensorflow keras无法在预测阶段退出(设置学习阶段无效)

来自分类Dev

如何在Tensorflow-keras中使用nlp的预测?

来自分类Dev

在 TensorFlow Lite 中运行 Keras 模型时的不同预测

来自分类Dev

Keras 和 tensorflow 的串联和拟合误差

来自分类Dev

Tensorflow - 预测序列:X 和 Y 是什么?

来自分类Dev

更改R中类别预测的阈值

来自分类Dev

keras 对损失函数应用阈值

来自分类Dev

keras,无效的预测大小

来自分类Dev

Keras预测新形象

来自分类Dev

覆盖 keras 预测功能

来自分类Dev

包装python+keras+tensorflow“作为服务”以接收来自PHP的预测请求?

来自分类Dev

TensorFlow和Keras中的度量系统行为

来自分类Dev

Tensorflow收敛但预测错误

来自分类Dev

Tensorflow:获得预测

来自分类Dev

为什么结果与Keras模型中的调用和预测不同?似乎预测忽略任何随机产生的值

来自分类Dev

如何在Keras中的多变量多步LSTM实现中标准化(和反转预测)

来自分类Dev

验证和测试的准确性良好,但预测不佳 keras lstm

来自分类Dev

Keras中的变体自动编码器:在训练和预测时如何实现Keras层的不同输出?

来自分类Dev

Keras中的预测流输出

来自分类Dev

Keras在Multiprosses Pool中预测

来自分类Dev

MLP Keras预测的循环程序

来自分类Dev

Keras LSTM随序列预测

来自分类Dev

在预测期间使用来自 tensorflow hub 的 Elmo 作为自定义 tf.keras 层的问题

来自分类Dev

如何使用Tensorflow创建预测和地面真实标签的混淆矩阵?

Related 相关文章

  1. 1

    具有不同形状的X和y的Tensorflow keras时间序列预测

  2. 2

    为什么使用 keras 和 tensorflow 训练成功并预测失败?

  3. 3

    Keras / Tensorflow预测:数组形状错误

  4. 4

    预测中使用的阈值

  5. 5

    在 Keras 中预测和评估指标

  6. 6

    tensorflow keras无法在预测阶段退出(设置学习阶段无效)

  7. 7

    如何在Tensorflow-keras中使用nlp的预测?

  8. 8

    在 TensorFlow Lite 中运行 Keras 模型时的不同预测

  9. 9

    Keras 和 tensorflow 的串联和拟合误差

  10. 10

    Tensorflow - 预测序列:X 和 Y 是什么?

  11. 11

    更改R中类别预测的阈值

  12. 12

    keras 对损失函数应用阈值

  13. 13

    keras,无效的预测大小

  14. 14

    Keras预测新形象

  15. 15

    覆盖 keras 预测功能

  16. 16

    包装python+keras+tensorflow“作为服务”以接收来自PHP的预测请求?

  17. 17

    TensorFlow和Keras中的度量系统行为

  18. 18

    Tensorflow收敛但预测错误

  19. 19

    Tensorflow:获得预测

  20. 20

    为什么结果与Keras模型中的调用和预测不同?似乎预测忽略任何随机产生的值

  21. 21

    如何在Keras中的多变量多步LSTM实现中标准化(和反转预测)

  22. 22

    验证和测试的准确性良好,但预测不佳 keras lstm

  23. 23

    Keras中的变体自动编码器:在训练和预测时如何实现Keras层的不同输出?

  24. 24

    Keras中的预测流输出

  25. 25

    Keras在Multiprosses Pool中预测

  26. 26

    MLP Keras预测的循环程序

  27. 27

    Keras LSTM随序列预测

  28. 28

    在预测期间使用来自 tensorflow hub 的 Elmo 作为自定义 tf.keras 层的问题

  29. 29

    如何使用Tensorflow创建预测和地面真实标签的混淆矩阵?

热门标签

归档