问题

我正在MNIST上运行深度神经网络,其损失定义如下:
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, label))
该程序似乎可以正常运行,直到我在第10000次以上的小批量生产中损失了nan。有时,程序会正确运行,直到完成为止。我认为tf.nn.softmax_cross_entropy_with_logits给了我这个错误。
这很奇怪,因为代码仅包含muladd操作。

可能的解决方案

也许我可以使用:

if cost == "nan":
  optimizer = an empty optimizer
else:
  ...
  optimizer = real optimizer

但是我找不到nan的类型。如何检查变量是否为nan

我还能如何解决这个问题?

最佳答案

检查您的学习率。您的网络越大,需要学习的参数就越多。这意味着您还需要降低学习率。

关于python - 如何解决南失?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40158633/

10-12 19:35