在 TensorFlow 中自定义 Huber 损失函数可以通过以下方式实现:
import tensorflow as tf
def huber_loss(y_true, y_pred, delta=1.0):
error = y_true - y_pred
abs_error = tf.abs(error)
quadratic_part = tf.minimum(abs_error, delta)
linear_part = abs_error - quadratic_part
loss = 0.5 * tf.square(quadratic_part) + delta * linear_part
return loss
# 使用示例
y_true = tf.constant([1.0, 2.0, 3.0])
y_pred = tf.constant([1.5, 2.5, 3.5])
loss = huber_loss(y_true, y_pred)
print(loss.numpy())
在上面的代码中,我们定义了一个 huber_loss
函数来计算 Huber 损失。该函数接受两个参数:y_true
是真实标签,y_pred
是预测标签;还有一个可选参数 delta
,用于控制损失函数的平滑程度,默认值为1.0。
然后我们使用给定的真实和预测标签计算损失,并打印结果。
注意:以上代码只是展示如何自定义 Huber 损失函数,并不包括完整的模型训练过程。根据你的具体应用场景和模型结构,你可能需要在训练过程中使用这个损失函数,并与其他指标一起优化模型。
内容由零声教学AI助手提供,问题来源于学员提问