【发布时间】:2020-08-30 12:07:32
【问题描述】:
我正在阅读 Pytorch 和 Tensorflow 中的交叉熵文档。我知道他们正在修改交叉熵的幼稚实现,以解决潜在的数字上溢/下溢问题。但是,我无法理解这些修改有什么帮助。
implementation of Cross Entropy in Pytorch 遵循以下逻辑 -
现在,我们将它与 Tensorflow 的实现进行对比(我知道了from a discussion in Github。这可能完全错误)-
设是所有k个原始logit分数的向量。
虽然这解决了上溢问题,但它遇到了下溢问题,因为 可能会导致更小的
有人可以帮我理解这里发生了什么吗?
【问题讨论】:
-
这不是 PyTorch 中的实现方式。他们也subtract the max,否则它会在数值上不稳定。指出它们的实现并让我们知道是否有任何区别。我不认为会有,除了化妆品。
-
哦,是吗?好吧,它处理了数字溢出部分,但是数字下溢呢?我的信息来源是pytorch.org/docs/stable/generated/…
-
大多数人并不关心下溢。看看朴素的原始公式,当至少有一个占主导地位的大值时,非常小的值不会真正改变任何东西。
标签: tensorflow neural-network pytorch precision