来自 Tensorflow 中 sparse_softmax_cross_entropy_with_logits 的 NaN [英] NaN from sparse_softmax_cross_entropy_with_logits in Tensorflow

查看:29
本文介绍了来自 Tensorflow 中 sparse_softmax_cross_entropy_with_logits 的 NaN的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试在 tensorflow 中使用 sparse_softmax_cross_entropy_with_logits 损失函数时得到 NaN.我有一个简单的网络,例如:

I am getting NaN when I attempt to use the sparse_softmax_cross_entropy_with_logits loss function in tensorflow. I have a simple network, something like:

layer = tf.nn.relu(tf.matmul(inputs, W1) + b1)
layer = tf.nn.relu(tf.matmul(layer, W2) + b2)
logits = tf.matmul(inputs, W3) + b3
loss = tf.sparse_softmax_cross_entropy_with_logits(logits, labels)

我有很多类(~10000),所以我想我得到了 NaN,因为至少在我的一个示例中对应于正确类的 logit 被截断为零.有没有办法避免这种情况?

I have many classes (~10000), so I imagine I am getting NaN because the logit corresponding to correct class in at least one of my examples got truncated to zero. Is there a way to avoid this?

推荐答案

事实证明,我的一些标签超出了范围(例如,标签为 14000,而我的 logits 矩阵仅为 150 x 10000).事实证明,这会导致 NaN 而不是错误.

It actually turns out that some of my labels were out of range (e.g. a label of 14000, when my logits matrix is just 150 x 10000). It turns out this results in a NaN rather than an error.

这篇关于来自 Tensorflow 中 sparse_softmax_cross_entropy_with_logits 的 NaN的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆