首页 文章

张量加权平均数

提问于
浏览
3

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

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

我的功能看起来像这样:

function(y_true,y_pred)A =(y_true-y_pred)** 2 w - 可从y_true导出,与y_true返回平均值相同的张量(A,weight = w)< - 标量

y_true和y_pred是3D张量 .

1 回答

  • 1

    您可以使用 keras 上的 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)
    

相关问题