基于输入数据和适当标签形状的自定义损失函数?

时间:2021-03-16 16:36:44

标签: keras

我正在尝试实现自定义损失函数,如第二种方法所示,如对类似问题 (Custom loss function in Keras based on the input data) 的已接受答案所示。我收到一个我无法解释的错误(尽管我不相信发布明确的错误会有很大帮助)。我想知道我作为真实/目标标签传递给 model.fit 函数的数据形状是否有问题。我传递给 model.fit 的标签具有形状 (1000, 1)。连接来自输入的数据(我希望在 custom_loss 函数中使用)后,标签的形状为 (1000,2)。我的模型最终的输出为 (,1)。我编写的自定义损失函数出于所有目的和目的与上面链接的答案中的函数完全相同(对于第二种方法)。如果我的理解是正确的,y_true 和 y_pred 是从每个批次的真实标签和我的网络预测中解析出来的;以便在每批结束时:

y_true = true_labels[:batch_size, :]

和 y_pred 只是相互附加的网络预测,因此 y_pred.shape == (batch_size, 1);然后将这些向量传递给损失函数以计算批次损失。这通常是正确的吗?

需要注意的是,在我尝试实现自定义损失函数之前,我的真实标签的形状为 (1000,),我使用了 np.reshape,这样我就可以将所需的输入数据附加到真实标签向量( np.reshape(true_labels, data, axis=1))。在我这样做之前,我的模型正在训练和做出怀疑的预测。无论如何,非常感谢任何帮助。

0 个答案:

没有答案