3

我刚刚用 Tensorflow/Keras 训练了一个 CNN 并将其保存为模型。我尝试通过它多次运行大约 1000 个输入,每次得到的预测精度略有不同。准确性很好,我不关心性能;但是,我认为 CNN 模型一旦经过训练,就应该是确定性的。也就是说,任何输入都将始终以相同的方式分类。不是这样吗?模型在训练后的预测方式是否存在可变性?如果不是,希望我可以假设我已经在不知不觉中将一些可变性编程到我的代码中。任何帮助,将不胜感激。

4

1 回答 1

2

一旦 CNN 被训练,它的输出是否应该是确定性的?

嗯,理论上,是的。在实践中,正如 Peter Duniho 在他出色的解释性评论中指出的那样,由于计算、聚合等值的方式,我们可以看到非常小的偏差。

在实践中,如此小的偏差改变分类模型的预测类别(以及因此准确性)的概率非常小,以至于我几乎可以肯定在你的示例中还有其他东西在起作用。甚至超过 1000 个样本。

您是否进行了一些训练正则化,例如批量标准化?您确定每次都在评估完全相同的 1000 个输入吗?不得不怀疑问题出在代码中,而不是舍入错误。

你能确定哪些具体的分类发生了变化吗?

于 2019-08-11T06:48:03.407 回答