问题
我正在MNIST上运行深度神经网络,其损失定义如下:cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, label))
该程序似乎可以正常运行,直到我在第10000次以上的小批量生产中损失了nan。有时,程序会正确运行,直到完成为止。我认为tf.nn.softmax_cross_entropy_with_logits
给了我这个错误。
这很奇怪,因为代码仅包含mul
和add
操作。
可能的解决方案
也许我可以使用:
if cost == "nan":
optimizer = an empty optimizer
else:
...
optimizer = real optimizer
但是我找不到
nan
的类型。如何检查变量是否为nan
?我还能如何解决这个问题?
最佳答案
检查您的学习率。您的网络越大,需要学习的参数就越多。这意味着您还需要降低学习率。
关于python - 如何解决南失?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40158633/