2.3 Pytorch BCEloss与我自己的“ log”计算之间的比率

时间:2019-11-20 20:09:50

标签: machine-learning deep-learning pytorch

我正在编写一个玩具模型以同时练习PyTorch和GAN模型,并确保我尽可能地了解每个步骤。 这导致我检查了对BCEloss函数的理解,显然我理解了...比率为2.3。

要检查结果,我编写Excel的中间值:

tmp1 = y_pred.tolist()  # predicted values in list (to copy/paste on Excel)
tmploss = nn.BCELoss(reduction='none')  # redefining a loss giving the whole BCEloss tensor
tmp2 = tmploss(y_pred, y_real).tolist()  # BCEloss values in list (to copy/paste Exel)

然后我在Excel上复制tmp1并计算:为每个值计算-log(x),这是y_target = y_real = 1的BCEloss公式。

然后,我将结果值与tmp2的值进行比较:这些值比“ mine”高2.3倍。

enter image description here (抱歉,我不知道如何格式化此网站上的表格...)

你能告诉我发生了什么吗?我觉得有PEBCAK来了:-)

1 个答案:

答案 0 :(得分:4)

这是因为在Excel中, Log 函数会计算以10为底的对数。 二进制交叉熵的标准定义使用对数 e 的对数函数。 您看到的比率只是 log(10)= 2.302585