【问题标题】:Keras model.compile: metrics to be evaluated by the modelKeras model.compile:模型要评估的指标
【发布时间】:2016-11-30 12:15:26
【问题描述】:

我正在关注一些 Keras 教程,并且我了解 model.compile 方法创建一个模型并采用“metrics”参数来定义在训练和测试期间用于评估的指标。

compile(self, optimizer, loss, metrics=[], sample_weight_mode=None)

我遵循的教程通常使用“metrics=['accuracy']”。我想使用其他指标,例如 fmeasure,阅读 https://keras.io/metrics/ 我知道有很多选择。但我不知道如何将它们传递给 compile 方法?

例如:

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['fmeasure'])

会生成一个错误,指出没有这样的指标。

任何建议都非常感谢

谢谢

【问题讨论】:

  • 你的 Keras 版本是多少?
  • 刚刚升级到最新的 1.1.2 并且可以正常工作。谢谢

标签: keras


【解决方案1】:

您可以提供两种类型的指标。
第一个是由 keras 提供的,您可以找到 here,您可以在单引号中提供,例如 'mae',或者您也可以定义类似

from keras import metrics
model.compile(loss='mean_squared_error',
              optimizer='sgd',
              metrics=[metrics.mae, metrics.categorical_accuracy]) \\or like 
              metrics=['mae', 'categorical_accuracy']

其次是这样的自定义指标

import keras.backend as K

def mean_pred(y_true, y_pred):
    return K.mean(y_pred)

model.compile(optimizer='rmsprop',
              loss='binary_crossentropy',
              metrics=['accuracy', mean_pred])

这里的 mean_pred 是自定义指标。查看定义现有指标和自定义指标的区别。所以 fmeasure 不是现成的。您必须将其定义为自定义函数。

【讨论】:

    【解决方案2】:

    我相信您的问题类似于https://stackoverflow.com/a/43354147/6701627。请检查给定帖子中的答案。

    PS:我打算把这个作为评论,但没有足够的声望点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      相关资源
      最近更新 更多