keras的指标返回什么值?标量或张量?

时间:2019-05-17 14:12:37

标签: python keras

我正在编写有关Keras中的自定义损失函数和自定义指标函数的代码。现在代码是错误的。

我不知道这些自定义函数应返回什么值,标量或张量,其大小为“ batch_size”?我尝试了所有这些方法,但令人惊讶的是它们都可以工作,而结果却不同。

所以我想知道其中哪个是正确的。当完成训练的一个纪元时,“损失”和“度量”的计算机制是什么?

y_truey_predict的形状是(batch_size,1)

def loss_scalar(y_true,y_pred):

main_loss=K.sum(K.reshape((1+0.2*(K.abs((5-y_true)-5/2)))*K.square(y_true-y_pred),shape=(-1,)))

def loss_tensor(y_true,y_pred):

main_loss=(K.reshape((1+0.2*(K.abs((5-y_true)-5/2)))*K.square(y_true-y_pred),shape=(-1,))

def mae_tensor(y_true,y_pred):

return  (K.mean(K.abs(y_true-y_pred),axis=-1))

def mae_scalar(y_true,y_pred):

return  K.sum(K.mean(K.abs(y_true-y_pred),axis=-1))

1 个答案:

答案 0 :(得分:0)

Keras指标返回: 单个张量值,表示所有数据点上输出数组的平均值。根据doc