gpt4 book ai didi

tensorflow - TensorFlow:我的登录信息是否采用正确的格式以实现交叉熵功能?

转载 作者:行者123 更新时间:2023-12-04 13:18:53 29 4
gpt4 key购买 nike

好了,所以我准备在Tensorflow中运行 tf.nn.softmax_cross_entropy_with_logits() 函数。

据我了解,“logit”应该是概率的张量,每个对应于某个像素的概率,即它是图像的一部分,最终将成为“狗”或“卡车”或任何东西……一个有限的数量。

这些对数将被插入到这个交叉熵方程中:
Cross entropy formula from Wikipedia

据我了解,logit插入等式的右侧。也就是说,它们是每个x(图像)的q。如果它们是从0到1的概率,那对我来说是有意义的。但是,当我运行我的代码并以logit张量结束时,我没有得到任何概率。取而代之的是,我得到的浮点数既有正值也有负值:

-0.07264724 -0.15262917  0.06612295 ..., -0.03235611  0.08587133 0.01897052 0.04655019 -0.20552202  0.08725972 ..., -0.02107313 -0.00567073 0.03241089 0.06872301 -0.20756687  0.01094618 ...,   etc

所以我的问题是……对吗?我是否必须以某种方式计算我的所有logit并将其转换为从0到1的概率?

最佳答案

需要注意的关键是, tf.nn.softmax_cross_entropy_with_logits(logits, labels) logits的每一行上执行内部softmax,以便在将其馈入交叉熵方程之前将其解释为概率。

因此,“logits”不必是概率(或顾名思义,甚至不是真正的对数概率),因为该操作中会发生内部标准化。

另一种书写方式:

xent = tf.nn.softmax_cross_entropy_with_logits(logits, labels)

...将会:
softmax = tf.nn.softmax(logits)
xent = -tf.reduce_sum(labels * tf.log(softmax), 1)

但是,此替代方案将(i)数值稳定性较差(因为softmax可能会计算出更大的值),以及(ii)效率较低(因为在backprop中会发生一些冗余计算)。为了实际使用,我们建议您使用 tf.nn.softmax_cross_entropy_with_logits()

关于tensorflow - TensorFlow:我的登录信息是否采用正确的格式以实现交叉熵功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36078411/

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