Tensorflow:Softmax与logits的交叉熵

Tensorflow:Softmax与logits的交叉熵,tensorflow,histogram,Tensorflow,Histogram,我正在编写教程。大多数情况下,培训失败,在摘要直方图中出现错误Nan。 我对原始数据运行以下命令以重新训练: python -m scripts.retrain --bottleneck_dir=tf_files/bottlenecks --model_dir=tf_files/models/ --summaries_dir=tf_files/training_summaries/"${ARCHITECTURE}" --output_graph=t

我正在编写教程。大多数情况下,培训失败,在摘要直方图中出现错误
Nan
。 我对原始数据运行以下命令以重新训练:

python -m scripts.retrain   
   --bottleneck_dir=tf_files/bottlenecks   
   --model_dir=tf_files/models/   
   --summaries_dir=tf_files/training_summaries/"${ARCHITECTURE}"   
   --output_graph=tf_files/retrained_graph.pb   
   --output_labels=tf_files/retrained_labels.txt  
   --image_dir=/ml/data/images
此错误也发生在中。我使用tfdg遵循了那里的说明,这给了我更多的洞察力(见下文)。然而,我仍然被困住了,因为我不知道为什么会发生这种情况,以及在没有太多TF和神经网络经验的情况下我能做些什么来修复它。这尤其令人困惑,因为它发生在100%的教程代码和数据中

这是tfdg的输出。第一次出现错误时:

以及节点的详细信息:

要查看重新培训脚本,您可以找到谷歌的原始代码。在我的情况下,它没有被修改。很抱歉没有包括它(太多字符)

超参数和结果
更多信息:培训的学习率值非常小(例如使用0000001)。然而,这并不能带来好的结果。无论我训练了多少个时代,性能都保持在较低的水平(在优化过程中可能会停留在局部极小值)

您确定正在创建tf_文件文件夹吗?
我在命令行python上遇到了一些问题。我切换到spyder,并根据retain.py中的要求更改了输入变量数据,它运行平稳。我知道,这不是一个解决方案,而是一个转折点。

我也在2.7中搜索了兼容性,但它说3.5是现在所有最新tensorflow支持的最佳版本。所以我用Python3.5创建了虚拟环境。我想这就是稳定性问题的原因。

你应该包括代码良好点,我添加了链接@Maxim。这是本教程的原始Google代码。@Gegenwind您需要包括TF、OS、CUDA的版本(如果使用)。如果删除摘要直方图,您的培训是否通过?直方图处理异常值比训练更困难。实际上,很难通过logits获得
tf.nn.softmax\u cross\u entropy\u来生成
inf
。我做了一些测试,只得到了很好的值或
nan
,不管
logits
是什么,只要
标签
是可以的(没有
inf
或类似的,我想这是你的情况)。无论如何,如果每个项目都属于一个类,您可以尝试看看是否更好(不过您必须稍微重新调整数据)。谢谢您的建议。但是文件夹在那里,所以这是可行的。这似乎更像是模型中的一个稳定性问题。您使用的是哪一版本的python?我使用的是2.7版,我也在2.7中搜索过兼容性,但它说3.5是现在所有最新tensorflow支持的最佳版本。所以我用Python3.5创建了虚拟环境。我想这就是稳定性问题的原因。@SaumyaAmbit Acharya:谢谢我们的直觉,也谢谢你为我节省了更多的测试时间。一个Python3实例,它运行得非常好。当你把它添加到你的答案中时,我将它标记为正确答案。