Python Keras自定义损失函数。如何知道损失函数中当前调用了哪些输出样本

Python Keras自定义损失函数。如何知道损失函数中当前调用了哪些输出样本,python,tensorflow,keras,Python,Tensorflow,Keras,我在keras中构建了一个自定义损失函数,在调用mean_absolute_error之前,我想在其中操纵y_true和y_pred。这种操作需要知道当前y_为真的样本,因此,我可以轻松地向输出中添加另一列,该列将具有顺序索引。所以我有 输出[:,0],这是所有样本的acual输出变量 输出[:,1]一个顺序索引,我不想预测它,只是在我的自定义损失函数中使用 def loss(y_true, y_pred): for i in range(len(y_true)):

我在keras中构建了一个自定义损失函数,在调用mean_absolute_error之前,我想在其中操纵y_true和y_pred。这种操作需要知道当前y_为真的样本,因此,我可以轻松地向输出中添加另一列,该列将具有顺序索引。所以我有

输出[:,0],这是所有样本的acual输出变量

输出[:,1]一个顺序索引,我不想预测它,只是在我的自定义损失函数中使用

 def loss(y_true, y_pred):

     for i in range(len(y_true)):
         index = y_true[i, 1]
         # some manipulations involving the index
     return mean_absolute_error(new_true, new_pred)
我如何实现上述目标,使模型忽略索引列输出,而不尝试预测它

也许有更好的办法来解决我的问题。我的最终目标是通过索引了解损失函数中当前有哪些样本输出。您可以尝试以下方法:

def customLoss(y_true, y_pred):
    
    # you can do your preprocessing here

    def loss(y_true, y_pred):
        for i in range(len(y_true)):
             index = y_true[i, 1]
             # some manipulations involving the index
        return mean_absolute_error(new_true, new_pred)


    return loss(y_true, y_pred)

如果只预测一个输出,会发生什么?如果keras抱怨true和pred之间的形状不匹配,那么使用tf.ones来计算任意维度如何?因为增加的那一栏没有用在损失上,所以它不会影响你的学习。从我所能告诉你的,你做得很好。你希望有什么不同的做法?您可能可以更有效地执行操作,但需要一个更完整的示例来真正说明。外部函数的参数中包含哪些y_true和y_pred?让我问一下,您想知道如何执行操作或在哪里执行操作吗。上面的答案告诉你在哪里可以进行操作。你想知道如何操作。您必须提供更多信息,如数据的形状、预期输出和示例。