Keras model.compile:由模型评估的指标

时间:2016-11-30 12:15:26

标签: keras

我正在学习一些Keras教程,我理解model.compile方法创建一个模型,并使用'metrics'参数来定义在培训和测试期间用于评估的指标。

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

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

例如:

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

会产生错误,表示没有此类指标。

高度赞赏任何建议

由于

2 个答案:

答案 0 :(得分:7)

您可以提供两种类型的指标。
首先是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并不容易获得。您必须将其定义为自定义函数。

答案 1 :(得分:4)

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

PS:我打算将此作为评论,但没有足够的声誉点。