Keras Python 自定义损失函数给出张量(的绝对差值)的最大值?

JDS

我有一个包含 5 个元素的一维数组作为我的输出,它在模型中看起来像这样:

out_vector = Dense(out_count, activation='relu', name='out_vector')(network_layer_3)

哪里out_count是 5(并不是真的很重要)。当我将它与true_out_vector另一个 5D 数组进行比较时,我希望损失是“元素绝对差异的最大值”。

我的意思是简单的例子:

v1 = [94, 1000, 50, 85, 23]

v2 = [100, 430, 88, 12, 90]

我希望我的损失等于最大的绝对差异,这很|1000 - 430| = 570明显,因为元素 2 具有最大的差异。我在 Keras 中无法实现这一点。这是我尝试过的:

def customLoss(yTrue,yPred):
        return K.maximum(K.abs(yTrue - yPred))  

但我收到错误:

File "C:\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py", line 609, in ndim
    dims = x.get_shape()._dims
AttributeError: 'int' object has no attribute 'get_shape'

我相信应该有一种简单的方法来做我想要做的事情。

优生学

这个怎么样:


from keras import backend as K
v1 = K.constant([94, 1000, 50, 85, 23])
v2 = K.constant([100, 430, 88, 12, 90])


def customLoss(yTrue, yPred):
    return K.max(K.abs(yTrue - yPred))

result = customLoss(v1, v2)

sess = K.get_session()
print(sess.run(result))

输出是:

570.0

注意:K.maximum当您只传递一个张量时,该方法需要两个张量

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

Keras模型的自定义损失函数给出错误答案

keras自定义损失纯python(无keras后端)

Python Keras自定义损失,使用损失函数中的输入功能

Keras自定义损失函数打印张量值

在Keras中的自定义损失函数中重塑张量

如何在tf.keras自定义损失函数中触发python函数?

keras 自定义损失函数转换为张量时的值错误

自定义损失函数以在Python中使用Keras进行奖励

Keras自定义损失函数访问python的全局变量时的内部机制是什么?

Python,基于预测的Keras自定义损失函数,不是输入

在Keras中设计自定义损失函数(在Keras中以张量为单位的索引)

Keras中的自定义损失函数

自定义损失函数Keras Tensorflow

keras制作自定义损失函数

Keras 中的自定义损失函数:初始化并将值附加到循环中的张量

如何在使用自定义损失函数在 Python 中训练的 DL4J 中加载 Keras 模型文件

张量的矢量化运算,而不是在keras自定义损失函数中使用for循环

为自定义损失函数创建形状与模型输出相同的 keras 张量

如何在Keras自定义损失函数中使用张量?

Keras自定义损失

自定义keras损失

Keras自定义损失错误:未知损失函数

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

R Keras中的自定义损失函数

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

在keras中创建自定义损失函数

如何在keras中测试自定义损失函数?

如何从Keras中的自定义损失函数获取结果?