小编axi*_*iom的帖子

自定义损失功能Keras Tensorflow

我需要一个自定义加权MSE损失函数.我在keras.backend中定义了它

from keras import backend as K
def weighted_loss(y_true, y_pred):
    return K.mean( K.square(y_pred - y_true) *
    K.exp(-K.log(1.7) * (K.log(1. + K.exp((y_true - 3)/5 ))))      
    ,axis=-1  )
Run Code Online (Sandbox Code Playgroud)

但是,测试运行会返回

    weighted_loss(1,2)
ValueError: Tensor conversion requested dtype int32 for Tensor with dtype float32: 'Tensor("Exp_37:0", shape=(), dtype=float32)'  
Run Code Online (Sandbox Code Playgroud)

要么

    weighted_loss(1.,2.)
ZeroDivisionError: integer division or modulo by zero   
Run Code Online (Sandbox Code Playgroud)

我想知道我在这里犯了什么错误.

keras tensorflow

2
推荐指数
1
解决办法
6627
查看次数

标签 统计

keras ×1

tensorflow ×1