我正在编写有关Keras中的自定义损失函数和自定义指标函数的代码。现在代码是错误的。
我不知道这些自定义函数应返回什么值,标量或张量,其大小为“ batch_size”?我尝试了所有这些方法,但令人惊讶的是它们都可以工作,而结果却不同。
所以我想知道其中哪个是正确的。当完成训练的一个纪元时,“损失”和“度量”的计算机制是什么?
y_true
和y_predict
的形状是(batch_size,1)
main_loss=K.sum(K.reshape((1+0.2*(K.abs((5-y_true)-5/2)))*K.square(y_true-y_pred),shape=(-1,)))
main_loss=(K.reshape((1+0.2*(K.abs((5-y_true)-5/2)))*K.square(y_true-y_pred),shape=(-1,))
return (K.mean(K.abs(y_true-y_pred),axis=-1))
return K.sum(K.mean(K.abs(y_true-y_pred),axis=-1))