【问题标题】:How do I pass a sample to a loss function?如何将样本传递给损失函数?
【发布时间】:2023-01-12 16:41:05
【问题描述】:

我有一个 keras 模型,其中每个样本包含 3 个标量和 2 个矩阵。其中一个矩阵是掩码。我需要看起来像 (Y_hat * mask - Y)^2 的均方损失函数,其中乘法是逐点的。每个样本都有自己的掩码。如何让这个掩码可用于损失函数?

【问题讨论】:

    标签: tensorflow keras loss


    【解决方案1】:

    与其创建复杂的损失函数,不如在将掩码发送到损失函数之前将其应用于 Y_hat?您仍然可以出于其他目的读出原始值。有了两个输入,你真的必须使用函数式 api:

    # assuming mask is a binary array
    
      y_hat = f(scalars, matrix)
      y_hat_masked = y_hat * mask
      model = keras.Model(inputs=inputs, outputs = y_hat_masked, name="example")
    
    

    如果您还需要未屏蔽的输出,您可以简单地使用多个输出,并且只在屏蔽的输出上运行损失

      model = keras.Model(inputs=..., outputs=[y_hat, y_hat_masked], name="example")
      model.compile(optimizer= ..., loss = [None, loss_fun])
    

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 2021-06-12
      • 2020-12-03
      • 2021-05-30
      • 2021-10-01
      • 1970-01-01
      • 2020-05-20
      • 2020-07-27
      • 1970-01-01
      相关资源
      最近更新 更多