gpt4 book ai didi

keras - 需要在model.evaluate()之前编译Keras模型

转载 作者:行者123 更新时间:2023-12-04 00:49:24 25 4
gpt4 key购买 nike

我从.json和.hdf5文件加载了Keras模型。当我调用model.evaluate()时,它返回一个错误:


您必须在训练/测试之前编译模型。使用`model.compile(优化器,损失)


为什么需要编译才能运行evaluate()

要添加,可以毫无问题地通过predict()传递模型。

最佳答案

因为evaluate将计算损失函数和指标。

在编译模型之前,您将没有它们。它们是compile方法的参数:

model.compile(optimizer=..., loss=..., metrics=...) 


另一方面, predict不评估任何度量或损失,它只是将输入数据传递通过模型并获得其输出。

您也需要“损失”来进行训练,因此如果不进行编译就无法进行训练。您可以根据需要多次编译模型,甚至可以更改参数。



输出和损失函数:

模型的输出取决于使用权重定义的模型。这是自动的,即使没有任何培训,您也可以在任何模型中使用 predict。 Keras中的每个模型都已经带有权重(由您初始化或随机初始化)

您输入一些东西,模型将计算输出。最后,这才是最重要的。一个好的模型具有适当的权重并可以正确输出。

但是在达到这一目的之前,需要对模型进行训练。

现在,损失函数获取当前输出并将其与预期/真实结果进行比较。该功能应该被最小化。损失越少,您的结果越接近预期。这是从中获取导数的函数,因此反向传播算法可以更新权重。

损失函数对模型的最终目的没有用,但是对于训练来说是必需的。这就是为什么您可以拥有没有损失函数的模型的原因(因此,无法评估它们)。

关于keras - 需要在model.evaluate()之前编译Keras模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46127625/

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