gpt4 book ai didi

tensorflow - 为什么 Pytorch 和 Tensorflow 中交叉熵的实现不同?

转载 作者:行者123 更新时间:2023-12-03 19:05:50 24 4
gpt4 key购买 nike

我正在阅读 Pytorch 和 Tensorflow 中的交叉熵文档。我知道他们正在修改交叉熵的幼稚实现来解决潜在的数字溢出/下溢。但是,我无法理解这些修改是如何提供帮助的。
implementation of Cross Entropy in Pytorch遵循以下逻辑 -
enter image description here
哪里enter image description here是 softmax 分数和 enter image description here是原始分数。
这似乎不能解决问题,因为 enter image description here也会导致数值溢出。
现在,我们将它与 Tensorflow 的实现进行对比(我得到了 from a discussion in Github 。这可能是完全错误的)-
enter image description here是所有 k 个原始 logit 分数的向量。
enter image description here
虽然这解决了上溢的问题,但它遇到了下溢的问题,因为 enter image description here 可能是这将导致一个更小的 enter image description here
有人可以帮我理解这里发生了什么吗?

最佳答案

为了社区的利益,通过结合评论部分的答案来回答这里。
由于您已经在 中解决了数字溢出的问题。 PyTorch ,这是通过减去最大值来处理的,如下所示( from here )。

scalar_t z = std::exp(input_data[d * dim_stride] - max_input);
谈到 TensorFlow 的交叉熵实现,下溢问题并不是那么重要,因为它在数值上被忽略,而占主导地位的大值。

关于tensorflow - 为什么 Pytorch 和 Tensorflow 中交叉熵的实现不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63657247/

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