当前位置: 首页 > 面试题库 >

Keras中的model.evaluate()返回什么值?

谭凯
2023-03-14
问题内容

我的模型有多个密集层的多个输出。我的模型'accuracy'是编译中的唯一指标。我想知道每个输出的损失和准确性。这是我的代码的一部分。

scores = model.evaluate(X_test, [y_test_one, y_test_two], verbose=1)

当我打印出分数时,这就是结果。

[0.7185557290413819, 0.3189622712272771, 0.39959345855771927, 0.8470299135229717, 0.8016634374641469]

这些数字代表什么?

我是Keras的新手,这可能是一个琐碎的问题。但是,我已经阅读了Keras的文档,但仍不确定。


问题答案:

引用evaluate()方法文档:

退货

标量测试损失(如果模型具有单个输出且没有度量标准)或标量列表(如果模型具有多个输出和/或度量标准)。该属性model.metrics_names将为您提供标量输出的显示标签。

因此,您可以使用metrics_names模型的属性来找出这些值分别对应的含义。例如:

from keras import layers
from keras import models
import numpy as np

input_data = layers.Input(shape=(100,)) 
out_1 = layers.Dense(1)(input_data)
out_2 = layers.Dense(1)(input_data)

model = models.Model(input_data, [out_1, out_2])
model.compile(loss='mse', optimizer='adam', metrics=['mae'])

print(model.metrics_names)

输出以下内容:

['loss', 'dense_1_loss', 'dense_2_loss', 'dense_1_mean_absolute_error', 'dense_2_mean_absolute_error']

表示您在evaluatemethod输出中看到的每个数字分别对应什么。

此外,如果您有许多层,则这些层dense_1dense_2名称可能会有点模棱两可。要解决这种歧义,您可以使用图层的name参数(不必在所有图层上,而仅在输入和输出图层上)为图层分配名称:

# ...
out_1 = layers.Dense(1, name='output_1')(input_data)
out_2 = layers.Dense(1, name='output_2')(input_data)
# ...

print(model.metrics_names)

输出更清晰的描述:

['loss', 'output_1_loss', 'output_2_loss', 'output_1_mean_absolute_error', 'output_2_mean_absolute_error']


 类似资料:
  • 问题内容: 什么回报? 答案会一样吗? Linux GCC的输出: 输出每次都会保持变化。这是标准答案吗?为什么除了学术研究之外,还有谁会对获得这样的指示感兴趣? 编辑: 如果返回伪指针,则以下内容如何工作: 编辑: 以下代码为每次迭代输出“可能”。为什么不失败? 问题答案: 其他人已经回答了如何工作。我将回答您提出的尚未回答的问题之一(我认为)。问题是关于: 什么回报?答案会一样吗? 该标准规定

  • 问题内容: 我感兴趣的部分是: 谢谢你的帮助! 问题答案: 这意味着结果值将被强制转换为 和 (即可序列化的比较器) 请注意,在进行此类转换时,您 只能 指定一个类(和无限数量的接口),因为一个类不可能从一个以上的超类继承。

  • 本文向大家介绍什么是方法的返回值?返回值在类的方法里的作用是什么?相关面试题,主要包含被问及什么是方法的返回值?返回值在类的方法里的作用是什么?时的应答技巧和注意事项,需要的朋友参考一下 方法的返回值是指我们获取到的某个方法体中的代码执行后产生的结果!(前提是该方法可能产生结果)。 返回值的作用: 接收出结果,使得它可以用于其他的操作!

  • 我在客户端使用vue、vue路由器,在服务器端使用express、morgan(MEVN应用程序) 在客户端我用vue cookie设置cookie 在服务器端,我使用CookieParser 所以,在应用程序。我有这样的代码 并且,在文件中,我有这样一个GET请求的代码 问题是,var loginHash=req.cookies['Login'];总是返回未定义的,即使我有登录cookie 添加

  • 问题内容: 我经常看到这样的代码(C,C ++,有时甚至是Java): 我看不到这些括号有任何好处。所以我的问题是,程序员是否假定函数是某种以返回值作为参数的函数,或者确实有这些括号有意义的情况吗? 我了解这里已经提出了类似的问题,但这仅与ANSI C有关。我想知道是否存在某些特定于C ++或Java的方面尚未得到解答。 问题答案: 关于C 括号放在有表达式的位置,并且希望返回值是表达式的值。 即

  • 本文向大家介绍详解vue中this.$emit()的返回值是什么,包括了详解vue中this.$emit()的返回值是什么的使用技巧和注意事项,需要的朋友参考一下 vue中的三大属性:属性 、事件、插槽,---事件 在事件中有 普通事件:@click/@input/@change/@xxx...事件; 修饰符事件:@input.trim,@click.stop,@submit.prevent...