张量加权平均数

时间:2017-02-02 09:41:52

标签: python tensorflow keras

我正在尝试在keras框架中实现自定义目标函数。 分别是一个加权平均函数,它取两个参数张量y_true和y_pred;权重信息来自y_true tensor。

张量流中是否有加权平均函数? 或者关于如何实现这种损失函数的任何其他建议?

我的功能看起来像这样:

功能(y_true,y_pred)   A =(y_true-y_pred)** 2   w - 可从y_true导出,与y_true形状相同的张量   返回平均值(A,权重= w)< - 标量

y_true和y_pred是3D张量。

1 个答案:

答案 0 :(得分:1)

您可以使用here keras上的一个现有目标(也称为损失)。

您也可以实现自己的自定义函数丢失:

from keras import backend as K

def my_loss(y_true, y_pred):
    return K.mean(K.square(y_pred - y_true), axis=-1)

# Let's train the model using RMSprop
model.compile(loss=my_loss, optimizer='SGD', metrics=['accuracy'])

注意K模块,它应该用来充分利用keras性能的keras后端,不要做这样的事情,除非你不关心性能问题:

def my_bad_and_slow_loss(y_true, y_pred):
    return sum((y_pred - y_true) ** 2, axis=-1)

根据您的具体情况,如果您需要帮助,请写下您想要的目标函数。

更新

你可以尝试这个来提供权重 - W作为损失函数:

def my_loss(y_true, y_pred):
    W = np.arange(9) / 9.  # some example W
    return K.mean(K.pow(y_true - y_pred, 2) * W)