Keras 2.x消除了我需要使用的许多有用指标,因此我将功能从旧的metrics.py文件复制到了我的代码中,然后按如下方式包含了它们。
def precision(y_true, y_pred): #taken from old keras source code
true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
precision = true_positives / (predicted_positives + K.epsilon())
return precision
def recall(y_true, y_pred): #taken from old keras source code
true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
possible_positives = K.sum(K.round(K.clip(y_true, 0, 1)))
recall = true_positives / (possible_positives + K.epsilon())
return recall
Run Code Online (Sandbox Code Playgroud)
...
model.compile(loss='categorical_crossentropy', optimizer='adam',
metrics=['accuracy', precision, recall])
Run Code Online (Sandbox Code Playgroud)
这导致
ValueError: Unknown metric function:precision
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?根据Keras文档,我看不到我做错了什么。
编辑:
这是完整的回溯:
Traceback (most recent call …Run Code Online (Sandbox Code Playgroud)