Tensorflow 每个输入具有不同权重的损失函数

Tensorflow 每个输入具有不同权重的损失函数,tensorflow,keras,Tensorflow,Keras,我想设计我的自定义损失函数,它不仅包含两个输入(y_real和y_pred),而且我不知道我是否能做到以及如何做到 我已经通读了关于损失函数的答案,它们都只输入y_real和y_pred 但在我的项目中,真预测和假预测的损失在不同的情况下是不同的,比如X1有(损失_T1,损失_F1),X2有(损失_T2,损失_F2) 所以对于损失函数,我需要输入四个变量(y_real,y_pred,loss_T,loss_F)。损耗T、损耗F作为特征之一位于X(我的数据的每一行)内 特性1特性2特性3损耗 X1

我想设计我的自定义损失函数,它不仅包含两个输入(y_real和y_pred),而且我不知道我是否能做到以及如何做到

我已经通读了关于损失函数的答案,它们都只输入y_real和y_pred

但在我的项目中,真预测和假预测的损失在不同的情况下是不同的,比如X1有(损失_T1,损失_F1),X2有(损失_T2,损失_F2)

所以对于损失函数,我需要输入四个变量(y_real,y_pred,loss_T,loss_F)。损耗T、损耗F作为特征之一位于X(我的数据的每一行)内

特性1特性2特性3损耗 X1
X2
X3

我有办法做到吗


感谢您的贡献。

较低级别的tensorflow API可以为您工作。例如,
Optimizer.optimize\u loss
获取一个损耗张量,它只是损耗函数的输出,并将其最小化。因此,如果您直接使用
优化损失
,您可以用任何您想要的复杂方式构建损失函数。

您的意思是,您需要为不同的样本(例如整个向量)提供不同的权重,或者为不同的属性提供不同的权重?(向量的元素)。是否可以尝试为您的损失提出一个数学公式?如果loss_T和loss_F是您所说的特征,请将它们的值输入一些占位符,并使用tensorflow提供的基本数学运算来构建您的损失函数(如tf.add(x,y)、tf.sub(x,y)、tf.square(x)、tf.reduce_sum(x)等)。Tensorflow将负责反向传播或其他更新。@maz为不同的用户分配不同的权重samples@kaufmanu我可以为它编写一个新的损失函数,但我需要每个样本的输入损失,我不知道在这种情况下如何传递参数。我按照您的建议尝试这种方法。当我在损失函数中使用if-else时,它会报告没有为任何变量提供梯度的错误。要解决这个问题,您是否尝试过使用
tf.cond
而不是if-else?tensorflow自动微分不支持If else。