以y_true取决于y_pred的方式自定义Keras的损失函数

里奥·马根

我正在研究多标签分类器。我有许多输出标签[1、0、0、1 ...],其中1表示输入属于该标签,而0表示否则。

就我而言,我使用的损失函数基于MSE。我想以某种方式更改损失函数,即当输出标签为-1时,它将更改为该标签的预测概率。

检查所附图像以最好地理解我的意思:情况是-当输出标签为-1时,我希望MSE等于零:

这是方案: 在此处输入图片说明

在这种情况下,我希望将其更改为:

在此处输入图片说明

在这种情况下,第二个标签的MSE(中间输出)将为零(这是特例,我不希望分类器了解此标签)。

感觉这是一种必需的方法,我真的不相信我是第一个考虑这种方法的人,因此我首先想知道是否有这种训练Neural Net的方法的名称,其次我想知道如何我可以做吗。

我知道我需要更改损失函数中的某些内容,但我真的是Theano的新手,并且不确定如何在此处查找特定值以及如何更改张量的内容。

我相信这就是您要寻找的。

import theano
from keras import backend as K
from keras.layers import Dense
from keras.models import Sequential

def customized_loss(y_true, y_pred):
    loss = K.switch(K.equal(y_true, -1), 0, K.square(y_true-y_pred))
    return K.sum(loss)

if __name__ == '__main__':
    model = Sequential([ Dense(3, input_shape=(4,)) ])
    model.compile(loss=customized_loss, optimizer='sgd')

    import numpy as np
    x = np.random.random((1, 4))
    y = np.array([[1,-1,0]])

    output = model.predict(x)
    print output
    # [[ 0.47242549 -0.45106074  0.13912249]]
    print model.evaluate(x, y)  # keras's loss
    # 0.297689884901
    print (output[0, 0]-1)**2 + 0 +(output[0, 2]-0)**2 # double-check
    # 0.297689929093

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

y_pred的自定义损失函数Keras仅高于某个阈值

来自分类Dev

Keras的自定义损失函数中y_true的大小

来自分类Dev

是否可以通过额外的y_pred预处理来制作自定义损失函数?

来自分类Dev

如果我在keras中使用y_pred作为自定义损失函数会怎样?这不应该总是有效吗,因为y_pred总是可以区分的吗?

来自分类Dev

我印象深刻的是,当模型调用损失函数时,Y_TRUE和Y_PRED的最后一个维度将被删除

来自分类Dev

将y_true和y_pred视为Keras.Metric中的单个样本还是一批样本?

来自分类Dev

如何在on_epoch_end中获取真实的y_true和y_pred?

来自分类Dev

使用fit_generator()时如何获取y_true,y_pred?

来自分类Dev

TypeError:categorical_crossentropy()缺少2个必需的位置参数:“ y_true”和“ y_pred”

来自分类Dev

自定义keras损失

来自分类Dev

Keras,Python中的自定义损失函数?

来自分类Dev

Keras模型-在自定义损失函数中获取输入

来自分类Dev

在CNN的Keras自定义损失函数中处理数据

来自分类Dev

Keras:无法在模型中使用自定义损失函数

来自分类Dev

自定义损失函数,Keras \\ ValueError:无渐变

来自分类Dev

基于输入数据的Keras中的自定义损失函数

来自分类Dev

Powershell 运行空间输出的行为取决于返回自定义对象的定义方式

来自分类Dev

keras 中的加权 mse 自定义损失函数 - 自定义权重

来自分类Dev

Keras上的自定义损失功能

来自分类Dev

在Keras建立自定义损失

来自分类Dev

Keras 中自定义损失的输出

来自分类Dev

在 Keras 中创建 Y_true 数据集

来自分类Dev

自定义比较器,取决于外部值

来自分类Dev

MediaWiki Wiki自定义页脚(取决于类别)

来自分类Dev

自定义授权取决于用户属性

来自分类Dev

自定义Gradle任务取决于插件

来自分类Dev

覆盖价格取决于Magento上的自定义选项

来自分类Dev

取决于单元格值的自定义格式

来自分类Dev

自定义 UIView 类约束取决于 ParentView

Related 相关文章

  1. 1

    y_pred的自定义损失函数Keras仅高于某个阈值

  2. 2

    Keras的自定义损失函数中y_true的大小

  3. 3

    是否可以通过额外的y_pred预处理来制作自定义损失函数?

  4. 4

    如果我在keras中使用y_pred作为自定义损失函数会怎样?这不应该总是有效吗,因为y_pred总是可以区分的吗?

  5. 5

    我印象深刻的是,当模型调用损失函数时,Y_TRUE和Y_PRED的最后一个维度将被删除

  6. 6

    将y_true和y_pred视为Keras.Metric中的单个样本还是一批样本?

  7. 7

    如何在on_epoch_end中获取真实的y_true和y_pred?

  8. 8

    使用fit_generator()时如何获取y_true,y_pred?

  9. 9

    TypeError:categorical_crossentropy()缺少2个必需的位置参数:“ y_true”和“ y_pred”

  10. 10

    自定义keras损失

  11. 11

    Keras,Python中的自定义损失函数?

  12. 12

    Keras模型-在自定义损失函数中获取输入

  13. 13

    在CNN的Keras自定义损失函数中处理数据

  14. 14

    Keras:无法在模型中使用自定义损失函数

  15. 15

    自定义损失函数,Keras \\ ValueError:无渐变

  16. 16

    基于输入数据的Keras中的自定义损失函数

  17. 17

    Powershell 运行空间输出的行为取决于返回自定义对象的定义方式

  18. 18

    keras 中的加权 mse 自定义损失函数 - 自定义权重

  19. 19

    Keras上的自定义损失功能

  20. 20

    在Keras建立自定义损失

  21. 21

    Keras 中自定义损失的输出

  22. 22

    在 Keras 中创建 Y_true 数据集

  23. 23

    自定义比较器,取决于外部值

  24. 24

    MediaWiki Wiki自定义页脚(取决于类别)

  25. 25

    自定义授权取决于用户属性

  26. 26

    自定义Gradle任务取决于插件

  27. 27

    覆盖价格取决于Magento上的自定义选项

  28. 28

    取决于单元格值的自定义格式

  29. 29

    自定义 UIView 类约束取决于 ParentView

热门标签

归档