如何用Keras计算马哈拉诺比斯距离?

时间:2018-01-20 03:10:01

标签: python numpy tensorflow keras

对于使用Keras的回归NN,我希望计算Mahalanobis距离。但它看起来还没有内置。所以我希望能够使用自定义丢失函数,我希望能提出几个问题。

有没有办法可以打印自定义丢失功能的输出。不使用verbose=1或其他东西,但使用简单的调用,我可以检查计算。如果是,我应该为y_predy_true,NumPy传递哪种类型的值?

如果马哈拉诺比斯工作,我希望输出协方差的Cholesky分解。但是,神经网络的输出将比标签多6个值。是否有一种聪明的方法可以避免网络输出和标签尺寸应该相同的断言错误?

在自定义损失函数中,张量指数的工作方式是否与NumPy相同?例如,如果我想要y_pred的部分和,我可以K.sum(y_pred[3:5, :])吗?实际上,如果可以回答Q1,我可以自己尝试这些。

1 个答案:

答案 0 :(得分:0)

在自定义丢失中,您应该将y_true和y_pred视为张量(如果您使用tf作为后端,则为张量流量张量)。

如果要执行自定义计算,则必须使用后端:

import keras.backend as K

在这里你可以使用K.sum,K.abs,K.mean,...(或多或少采用numpy风格)。

当您实际为模型提供一些数据时,您将把它作为numpy数组传递。