gpt4 book ai didi

python - 如何在 TensorFlow 中对自定义损失函数内的张量进行归一化?

转载 作者:太空宇宙 更新时间:2023-11-04 04:16:27 24 4
gpt4 key购买 nike

自定义损失函数已编写,必须以度数显示与真实方向的偏差。我有真实方向 (x, y, z),我尝试使用优化器的 degrees_mean_error 函数预测方向,如下所示:

def degrees_mean_error(y_true, y_pred):
norm = sqrt(y_pred[:, 0] ** 2 + y_pred[:, 1] ** 2 + y_pred[:, 2])
y_pred[:, 0] /= norm
y_pred[:, 1] /= norm
y_pred[:, 2] /= norm
angles = y_pred[:, 0] * y_true[:, 0] + y_pred[:, 1] * y_true[:, 1] + y_pred[:, 2] * y_true[:, 2]
return acos(angles) * 180 / np.pi

但是,我有一个问题,因为张量不是赋值。我可以标准化keras损失函数中的张量吗?如果不这样做,误差会很大,甚至nan,看下面训练时没有规范化的输出:

256/170926 [................................] - 预计到达时间:3:21 - 损失:88.1727

512/170926 [................................] - 预计到达时间:2:25 - 损失:66.7276

768/170926 [................................] - 预计到达时间:2:07 - 损失:nan

1024/170926 [................................] - 预计到达时间:1:58 - 损失:nan

1280/170926 [................................] - 预计到达时间:1:53 - 损失:nan

1536/170926 [................................] - 预计到达时间:1:50 - 损失:nan

1792/170926 [................................] - 预计到达时间:1:47 - 损失:nan

2048/170926 [................................] - 预计到达时间:1:45 - 损失:nan

最佳答案

您可以立即找到偏差:

 angles = (y_pred[:, 0] / norm) * y_true[:, 0] + (y_pred[:, 1] / norm) * y_true[:, 1] + (y_pred[:, 2] / norm) * y_true[:, 2]

关于python - 如何在 TensorFlow 中对自定义损失函数内的张量进行归一化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55317509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com