keras 如何将样本传递给损失函数?

cyej8jka  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(151)

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

enxuqcxy

enxuqcxy1#

与其创建一个复杂的损失函数,不如先将掩码应用于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])

相关问题