Deep learning 如何为多维目标定义自定义损失函数
我使用的是Tensorflow 2.0,我使用的是普通的顺序层 我正在尝试定义一个自定义损失函数,它执行以下操作:Deep learning 如何为多维目标定义自定义损失函数,deep-learning,neural-network,tensorflow2.0,loss-function,tf.keras,Deep Learning,Neural Network,Tensorflow2.0,Loss Function,Tf.keras,我使用的是Tensorflow 2.0,我使用的是普通的顺序层 我正在尝试定义一个自定义损失函数,它执行以下操作: 获取输入的某些元素 计算它们的总和并反转结果 将结果与y_pred的一部分相乘 将结果约束为尽可能接近1 因此,损失函数将是L()=MSE()+(如上所述) 我的代码如下: def custom_loss_wrapper(input_train): @tf.function def summing(row): return tf.math.red
- 获取输入的某些元素
- 计算它们的总和并反转结果
- 将结果与y_pred的一部分相乘
- 将结果约束为尽可能接近1
def custom_loss_wrapper(input_train):
@tf.function
def summing(row):
return tf.math.reduce_sum(row, 1,keepdims=True)
@tf.function
def custom_loss(y_true, y_pred):
row_M = input_train
row_M = row_M[:, 2:5]
sum_M = summing(row_M)
inv_M = (1/sum_M)
row_B = y_pred[:, :3]
sum_B = summing(row_B)
row_Q = tf.math.multiply(inv_M,row_B)
alpha = 0.01
penalty = K.mean(K.square(sum_Q - 1))
return K.mean(K.square(y_true - y_pred)) + (1/alpha) * penalty
return custom_loss
我想知道我所做的是否正确。没有错误和训练运行,但我不知道这段代码是否符合我试图定义的内容。大多数情况下,如果考虑到批量数据而不是单个记录,这是正确的如果它有效,您为什么怀疑它是否有效?这是一个好问题!问题是我没有办法检查培训是否有效,我没有一个基准如果有效,你为什么怀疑它有效?这是个好问题!问题是我没有办法检查培训是否有效,我没有一个基准