自定义积分损耗项Keras

时间:2017-11-11 15:17:42

标签: python optimization neural-network keras

我正在尝试在Keras中定义自定义丢失函数,其中我有一个额外的术语,它是神经网络输出域的一个整体。所以这看起来像:

integral

关键是整数运行在我指定的整个域上,而不仅仅是训练数据。我不介意使用任何形式的积分来评估积分,我只需要能够对其进行评估。目前,就文档所示,这不可能与自定义丢失相关,因为它只提供对y_predy_true的访问权限。

在Keras有没有办法实现这一目标?

1 个答案:

答案 0 :(得分:-1)

如果想法只是定义额外的变量,你可以使用keras后端函数在内部(本地)或外部(全局)损失函数中执行此操作:

import keras.backend as K

myDomain = K.variable(range(100)) / 10 #for instance  

def custom_loss(y_true,y_pred):
    localVar = K.variable([[1,2],[3,1]])

    return calculationsWith(y_true,y_pred,localVar,myDomain)  

使用来自后端的功能进行计算非常重要。 (来自K或直接来自tensoflow,theano或CNTK)。