计算张量流量损失时的几何平均值

2024-05-17 19:23:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要计算Aitchison距离,作为输入和输出数据集之间的损失函数

在计算此mstric时,我需要计算每行的几何平均值(其中[Batch x features]——丢失期间数据集的大小)

在简单的情况下,我们可以想象只有一个批次,所以我只需要为输入数据集计算一个几何平均值,为输出数据集计算一个几何平均值

那么如何在tensorflow上实现呢?我没有找到任何指定的指标或缩减的函数


Tags: 数据函数距离tensorflowbatch情况指标平均值
1条回答
网友
1楼 · 发布于 2024-05-17 19:23:45

您可以使用tensorflow使用突出显示的数值稳定公式here轻松地将张量的几何平均值计算为损失函数(或在您的情况下作为损失函数的一部分)。提供的代码片段非常类似于遵循上述公式(和scipy implementation)的pytorch解决方案here

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,或者将其集成到代码中

相关问题 更多 >