gpt4 book ai didi

keras - 在keras中的model.compile中使用metrics时,报ValueError : ('Unknown metric function' , ':f1score' )

转载 作者:行者123 更新时间:2023-12-01 19:55:28 24 4
gpt4 key购买 nike

我正在尝试运行 LSTM,当我使用下面的代码时:

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

它返回:

ValueError: ('Unknown metric function', ':f1score').

我已经完成搜索并找到了这个网址: https://github.com/fchollet/keras/issues/5400

这个url中“model.compile”部分的“metrics”和我的一模一样,没有返回任何错误。

最佳答案

我怀疑您正在使用 Keras 2.X。如 https://keras.io/metrics/ 中所述,您可以创建自定义指标。这些指标似乎仅采用 (y_true, y_pred) 作为函数参数,因此不可能通用地实现 fbeta。

这是基于 keras 1.2.2 源代码的 f1_score 实现。

import keras.backend as K

def f1_score(y_true, y_pred):

# Count positive samples.
c1 = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
c2 = K.sum(K.round(K.clip(y_pred, 0, 1)))
c3 = K.sum(K.round(K.clip(y_true, 0, 1)))

# If there are no true samples, fix the F1 score at 0.
if c3 == 0:
return 0.0

# How many selected items are relevant?
precision = c1 / (c2 + K.epsilon())

# How many relevant items are selected?
recall = c1 / (c3 + K.epsilon())

# Calculate f1_score
f1_score = 2 * (precision * recall) / (precision + recall)
return f1_score

要使用,只需在定义自定义指标后编译模型时将 f1_score 添加到指标列表中即可。例如:

model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy',f1_score])

关于keras - 在keras中的model.compile中使用metrics时,报ValueError : ('Unknown metric function' , ':f1score' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43345909/

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