几何平均计算张流损失



我需要计算艾奇逊距离作为输入和输出数据集之间的损失函数。

在计算这个矩阵时,我需要计算每一行的几何平均值(其中[批次x特征]-丢失时数据集的大小)。

在简单的情况下,我们可以想象只有一个批处理,所以我只需要计算一个输入数据集和一个输出数据集

那么如何在张量流上实现呢?我没有找到任何指定的指标或简化函数

你可以很容易地用tensorflow计算张量的几何平均值作为损失函数(或者在你的情况下作为损失函数的一部分),使用这里突出显示的数值稳定公式。所提供的代码片段与这里发布的遵循上述公式(和scipy实现)的pytorch解决方案非常相似。

from tensorflow.python.keras import backend as K
def gmean_loss((y_true, y_pred, dim=1):
error = y_pred - y_true
logx = K.log(inputs)
return K.exp(K.mean(logx, dim=dim))

您可以根据需要定义dim或将其集成到您的代码中。

相关内容

  • 没有找到相关文章

最新更新