如何使用keras找到损失值?

Bha*_*yal 14 python deep-learning keras

我想使用keras中定义的各种损失函数来手动计算损失值.例如:

from keras.losses import binary_crossentropy
error=binary_crossentropy([1,2,3,4],[6,7,8,9])
Run Code Online (Sandbox Code Playgroud)

给我错误

AttributeError: 'list' object has no attribute 'dtype'.
Run Code Online (Sandbox Code Playgroud)

类似的方式我想使用其他keras损失功能.我有我的y_pred和y_true列表/数组.

Yu-*_*ang 22

您可以使用K.variable()包装输入并使用它K.eval()来获取值.

from keras.losses import binary_crossentropy
from keras import backend as K
y_true = K.variable(np.array([[1], [0], [1], [1]]))
y_pred = K.variable(np.array([[0.5], [0.6], [0.7], [0.8]]))
error = K.eval(binary_crossentropy(y_true, y_pred))

print(error)
[ 0.69314718  0.91629082  0.35667494  0.22314353]
Run Code Online (Sandbox Code Playgroud)