关于喀拉斯邦的习惯流失

时间:2019-01-30 04:17:45

标签: keras

如何在Hyperas中定义自定义损失函数?

我正在运行具有3个输出的4个密集层体系结构。对于损失,我想将其定义为:

Loss

( (Output1 Error) / max[Output1_pred, Output1_true] ) +
( (Output2 Error) / max[Output2_pred, Output2_true] ) +
( (Output3 Error) / max[Output3_pred, Output3_true] )

完成这项工作很简单吗?在这种情况下如何索引y_pred和y_true?

1 个答案:

答案 0 :(得分:0)

要在keras中创建自定义损失函数,请遵循以下Make a custom loss function in keras

现在要向量化损失函数,以免速度过慢,请使用向量化,您可以将损失函数编写为:

loss = np.sum(np.divide(Output_Error,np.amax(np.hstack((Output_pred,Output_true)),axis=1)))

现在让我们来分解一下

np.hstack((M1,M2))将矩阵堆叠为[M1 | M2],这两种情况都是您的情况。

np.amax(M,axis = 1)沿x轴(即每一行)创建一个最大值矢量。

np.divide(M1,M2)对矩阵进行逐元素除法,因此您仍将获得向量。

np.sum(M)提供矩阵M的标量和。

要了解有关这些功能的更多信息,请访问https://docs.scipy.org/doc/numpy-1.15.1/reference/

如果您有任何疑问,请在下面注释掉。