首页 / 深度学习 / python – 深度学习南失的原因
python – 深度学习南失的原因
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 深度学习南失的原因,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1520字,纯文字阅读大概需要3分钟。
内容图文
![python – 深度学习南失的原因](/upload/InfoBanner/zyjiaocheng/710/4e38f117bd8a434397c0ea7ede650a30.jpg)
也许是一般性的问题,但任何人都可以解释什么会导致卷积神经网络发散?
具体细节:
我正在使用Tensorflow的iris_training模型和我自己的一些数据并继续获取
ERROR:tensorflow:Model diverged with loss = NaN.
Traceback…
tensorflow.contrib.learn.python.learn.monitors.NanLossDuringTrainingError: NaN loss during training.
回溯源于线:
tf.contrib.learn.DNNClassifier(feature_columns=feature_columns,
hidden_units=[300, 300, 300],
#optimizer=tf.train.ProximalAdagradOptimizer(learning_rate=0.001, l1_regularization_strength=0.00001),
n_classes=11,
model_dir="/tmp/iris_model")
我已经尝试调整优化器,使用零学习率,并且不使用优化器.任何有关网络层,数据大小等的见解都是值得赞赏的.
解决方法:
我看到很多东西使模型分歧.
>学习率太高.如果损失开始增加然后发散到无穷大,您通常可以判断是否是这种情况.
>我不熟悉DNNClassifier,但我猜它使用了分类交叉熵成本函数.这涉及在预测接近零时取得预测的对数.这就是为什么人们通常会在预测中添加一个小的epsilon值来防止这种分歧.我猜测DNNClassifier可能会这样做或使用tensorflow opp.可能不是问题.
>其他数值稳定性问题可能存在,例如除以零,其中添加epsilon可以提供帮助.另一个不那么明显的一个,如果在处理有限精度数时,如果没有正确简化,那么导数的平方根可以发散.我再次怀疑这是DNNClassifier的问题.
>您可能对输入数据有疑问.尝试在输入数据上调用assert not np.any(np.isnan(x))以确保不引入nan.还要确保所有目标值都有效.最后,确保数据已正确规范化.您可能希望像素在[-1,1]范围内,而不是[0,255].
>标签必须在损失函数的范围内,因此如果使用基于对数的损失函数,则所有标签必须是非负的(如evan pu和下面的注释所述).
内容总结
以上是互联网集市为您收集整理的python – 深度学习南失的原因全部内容,希望文章能够帮你解决python – 深度学习南失的原因所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。