小编gaw*_*w89的帖子

用于自定义损失的 Keras Lambda 层

我正在尝试实现一个将生成自定义损失函数的 Lambda 层。在层中,我需要能够将批次中的每个元素与批次中的每个其他元素进行比较,以便计算成本。理想情况下,我想要看起来像这样的代码:

for el_1 in zip(y_pred, y_true):
    for el_2 in zip(y_pred, y_true):
        if el_1[1] == el_2[1]:
            # Perform a calculation
        else:
            # Perform a different calculation
Run Code Online (Sandbox Code Playgroud)

当我实现这一点时,我得到:

TypeError: TensorType does not support iteration.
Run Code Online (Sandbox Code Playgroud)

我使用的是 Keras 2.0.2 版和 Theano 0.9.0 版后端。我知道我需要使用 Keras 张量函数才能做到这一点,但我无法弄清楚任何可以做我想做的张量函数。

另外,我很难准确理解我的 Lambda 函数应该返回什么。它是每个样本的总成本的张量,还是只是批次的总成本?

几天来我一直在反对这一点。任何帮助深表感谢。

keras keras-layer

3
推荐指数
1
解决办法
2239
查看次数

标签 统计

keras ×1

keras-layer ×1